应用程序在zedboard运行时出错,错误提示缺少动态库,但动态库存在且已装载

在将Igh EtherCAT Master安装在zedboard平台后,测试该软件运行与内核注册成功,但在编写通信程序进行测试时出错。
错误代码如下,ectesthello1为该测试程序。

 $ ./ectesthello1 
./ectesthello1: error while loading shared libraries: libethercat.so.1: cannot open shared object file: No such file or directory

根据小工具,得到具体信息如下

 $ ldd ectesthello1 
        libethercat.so.1 => not found
        libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e7d000)
        /lib/ld-linux-armhf.so.3 (0x7f5d5000)

$ file ./ectesthello1 
./ectesthello1: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=b96348b42ca3108234cb1389878043f184477d94, not stripped

$ readelf -l ectesthello1 
[Requesting program interpreter: /lib/ld-linux-armhf.so.3

$ file /lib/libethercat.so.1
/lib/libethercat.so.1: symbolic link to `libethercat.so.1.0.0' 

$ file /lib/ld-linux-armhf.so.3 
/lib/ld-linux-armhf.so.3: symbolic link to `arm-linux-gnueabihf/ld-2.19.so'

求大神帮助分析解决。

1个回答

文件既然在默认的lib目录,有可能是你编译的时候链接错误

devilbuqi
杉杉唯落晖 回复Allforyouz: 不知道你解决没有,你最好查查你程序执行的lib目录,或者再建个软连接,
一年多之前 回复
Allforyouz
Simple_learner 我在编译的过程中,使用了-L 和-I 指令指定了库文件位置,并且用-Wl指定了运行库位置,仍然会显示这个错误。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
程序运行时,调用动态库出错
gcc sip_test.c -L libeXosip/src/libs/ -losip2 -losipparser2 -leXosip2 -o test -g -Wallrn程序编译成功了,但运行程序,程序直接退出rnrn我用gdb调试:rnStarting program: /mnt/sipsvr/test rn[Thread debugging using libthread_db enabled]rn[New Thread 0xb7fcc8e0 (LWP 28849)]rnrnBreakpoint 1, main () at sip_test.c:58rn58 printf("start\n");rn(gdb) srnstartrn59 sipInit();rn(gdb) rnsipInit () at sip_test.c:14rn14 exosip_ = eXosip_malloc();rn(gdb) rneXosip_malloc () at eXconf.c:590rn590 eXconf.c: No such file or directory.rn in eXconf.crn(gdb) rnrneXosip_malloc()是我调的库中的函数,为什么调用到这就显示找不到文件?rn哪位大哥能帮忙指点一下。
linux bitcoin-qt程序运行时 缺少 libboost.so 动态库
bitcoin可执行程序的运行错误截图# 执行打开后发生的错误提示 ./bitcoin-qt/home/cly/project/bitcoin/ShanRen_bitcoin-0.12/bitcoin-0.12/src/qt/.libs/lt-bitcoin-qt: error while loading shared libraries: libboost_filesystem.so.1.65.1
Linux缺少动态库的办法
首先使用ldd命令查看程序的依赖库,使用方法是ldd 程序名,看到缺少的库,会会出现not found如果是普通的用户,不是root用户,想要使用,在用户的目录下建立一个lib目录(我一般建立的是.lib),把刚刚提示缺少的动态库,拷贝到lib目录中即可。然后在.bash_profile中加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:lib所在的目录。然后使用
缺少系统动态库,请教
程序在一些机器上是好的,在另一些机器上运行会报14001(程序配置不争取,重新安装程序以修复此问题)的错,安装vcredist之后就好了。应该是有些缺少某些系统的库吧?请问我应该怎么确定是缺少哪一个库呢?万分感激。
linux 动态库运行时加载
动态加载 覆盖旧库 动态加载 覆盖旧库 一个程序mybin 运行时加载了 a.so, 如果 直接cp 新a.so 覆盖a.so 会导致mybin crash 因为: TODO 正确做法: install 新a.so a.so...
Linux下运行时指定动态库
开发程序的过程中,经常会用到一些动态库,但是动态库是无法编译到程序中的,所以安装程序时可能就需要将动态库放到默认的路径下/usr/lib或者/usr/local/lib/ 下等目录,否则,在运行程序时,就会有类似“libxxx.so找不到”的提示。   那么如果没有权限将指定的库拷贝到系统目录下呢?   这时就会用到一个环境变量LD_LIBRARY_PATH,通过如下cmd执行即可: $ e
c运行时动态库
这个是c在windows平台下的运行库的解说。包括了大多数可用的函数接口
TX_SDK_3.09.10 + 运行时动态库bin.rar
1)Platforms\vc10dll\ODA_vc10dll.sln ==> 生成: TD_ExamplesCommon.lib 2)TD_FLAGS = -D_TOOLKIT_IN_DLL_ TD_INCLUDE = -I$(TD_BASE)\TD\Include -I$(TD_BASE)\TD\Extensions\ExServices TD_LIBDIR = $(TD_BASE)\lib\vc10dll DWG_LIB=$(TD_LIBDIR)/TD_ExamplesCommon.lib \ $(TD_LIBDIR)/ModelerGeometry.lib \ $(TD_LIBDIR)/TD_BrepRenderer.lib \ $(TD_LIBDIR)/TD_Br.lib \ $(TD_LIBDIR)/TD_AcisBuilder.lib \ $(TD_LIBDIR)/TD_DynBlocks.lib \ $(TD_LIBDIR)/TD_Db.lib \ $(TD_LIBDIR)/TD_DbRoot.lib \ $(TD_LIBDIR)/TD_Gs.lib \ $(TD_LIBDIR)/TD_SpatialIndex.lib \ $(TD_LIBDIR)/TD_Ave.lib \ $(TD_LIBDIR)/TD_Root.lib \ $(TD_LIBDIR)/TD_Gi.lib \ $(TD_LIBDIR)/TD_Ge.lib \ $(TD_LIBDIR)/TD_Alloc.lib \ $(TD_LIBDIR)/RxRasterServices.lib \ $(TD_LIBDIR)/RecomputeDimBlock.lib \ $(TD_LIBDIR)/ExFieldEvaluator.lib \ $(TD_LIBDIR)/RasterProcessor.lib 3)运行时dll在bin.rar或者安装TeighaViewer_vc10dll_3.09.1.msi
运行时如何动态调用动态库
我现在可以实现在make的时候,通过添加动态库,在程序中动态调用,如下:rn[code=C/C++]rnall:main cleanrnCC=g++rnmain:main.o /export/home/test/work/ymm/New/add.so rn $(CC) -o $@ $^rnmain.o:main.cpp rn $(CC) $(PATH_H) -c $^rnclean:rn rm *.o rn[/code]rn在程序中,可以动态的调用add(求和)函数。但是,如果现在我想添加一个求差函数(sub)的话,不但要添加sub.so动态库,而且需要修改makefile重新编译。rnrn我想到windows更新的时候,都是添加一个动态库就行了,而不是重新编译操作系统。所以,我想问大家一下,这是怎么实现的。怎么让只make一下,生成可执行文件,以后只需要添加一个动态库,就可以让程序自动的识别,添加相应的功能。谢谢!
动态库之四大天王、动态库、动态库
COM组件开发基础、COM组件开发基础、COM组件开发基础、COM组件开发基础
vc++动态库应用程序
vc++编的动态库应用程序,大家可以参考下。
动态库与应用程序编译时的匹配问题
在应用程序中使用了正规DLL,如果正规DLL与所使用的应用程序在骗译时使用不同的版本rn会出现问题吗?rnrn如DLL用调试版编译而应用程序用发布版编译,或相反。
Qt动态库和应用程序例子
使用Qt Creator创建dll库(包括qt GUI界面),然后用应用程序调用这个dll或so。
sql2008缺少Microsoft.SqlServer.Diagnostics.STrace动态库10.0.0
该dll可以解决sql server 2008上出现的“Microsoft.SqlServer.Diagnostics.STrace.dll”加载失败错误。
WIN10缺少MSVCR相关的动态库
在百度找了一波发现很多都是要金币的,大家可以去微软官网下载 https://support.microsoft.com/en-us/help/3179560/update-for-visual-c-2013-and-visual-c-redistributable-package
交叉编译工具安装缺少动态库问题解决方法
安装交叉编译工具,实现代码兼容运行
C/C++:使用dlopen、dlsym、dlclose运行时装载动态库
C/C++:使用dlopen、dlsym、dlclose运行时装载动态库
C语言--使用dlopen、dlsym、dlclose运行时装载动态库
一个可执行程序可能与多个动态库有关联,通常是在程序运行时将必要的动态库装载入进程实体(内存中); 另外一种,则是使用dlopen/dlsym/dlclose来动态地将动态库装载到当前进程实体中. 简单点说,就是: 1.dlopen将指定的动态库以特定的方式装载到当前进程实体,并返回一个可操作的句柄,用以后续获取函数地址等操作; 2.dlsym从指定的(由dlopen的返回值指定)库中获得指...
behaviac动态库运行出错
behaviac动态库运行出错(金庆的专栏 2017.3.16)游戏是静态链接的运行库,添加behaviac动态库后,运行出错:>    ucrtbased.dll!free_dbg_nolock(void * const block, const int block_use) 行 996    C++     ucrtbased.dll!_free_dbg(void * block, int b
CInternetSession 在动态库中出错
CInternetSession sess; 程序运行到这,handle exception 发生,如果在rnapp里直接写就可以,但是我们现在要求做一个dll,请高人指点。谢谢
dll 动态库调用出错
动态库定义的地方rnfunction Dou(i,j:integer):integer;stdcallrnbeginrn result:=i*j;rnend;rnexportsrnDou;rnrnrn 调用dll的地方rnprocedure TForm1.Button1Click(Sender: TObject);rnvarrnh:Thandle;rnbeginrnh:=SafeLoadLibrary('mydll.dll');rn@Dou:=getprocaddress(h,'Dou'); ------出错的地方rnend;rnrn到底动态调用dll应该怎么写呢?谢谢
编译动态库出错!
编译动态库时出错,我的操作步骤如下:rn新建一类型库项目-》编写.cs文件(写入你的函数)-》编译-》直接生成dll。rn第一次可以,第二次编辑时出错信息如下:rnrnUnexpected error creating debug information file 'E:\Work\Pulse.SQLHelper\obj\Debug\Pulse.SQLHelper.PDB' -- 'E:\Work\Pulse.SQLHernrn请各位兄弟发表意见
调用动态库出错
在64为操作系统调用32位动态库 ,老出错。rn我把在编译时目标平台由 any CPU 改为 x86,rn但是调用64位的Oracle.DataAccess.dll出错。rnrn错误日志如下:rn2012/6/27 16:11:46 System.BadImageFormatException: 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序。rn文件名:“Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”rnrn
delphi调用动态库出错
还是前几天出现的问题,DELPHI调用C++Builder写的动态库出错,跟踪到动态库时,发现实际delphi实际经值已经传了进来,但是我动态库内部定义的数据和结构体都是E2208 cannot access an inactive scope的错误,到底是动态库问题还是Delphi有问题,该怎么避免这样的问题,谢谢
加载动态库出错?
vC 加载动态库时,报下面的提示:rnFirst-chance exception in TestCAD.exe (UGS_COMMON.DLL): 0xC0000005: Access Violation.rnrn请各位兄台帮我分析下,给个解决之道. 谢谢!
动态库调用出错
错误信息:Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.rn我用的是非MFC动态库dll,动态加载,有.def文件,步骤如下:rn1。dll项目和测试项目在同一个工作区rn2. DLL项目生成成功,把.DLL文件考贝到TEST项目的DEBUG目录下rnrn3。把.DLL文件加到test项目中来,运行test项目rnvoid CtestDlg::OnBnClickedBegin()rnrn HINSTANCE hDll;//Dll句柄rn lpSearchFun searchFun;//函数指针rn hDll=LoadLibrary("SearchDll.dll");rn if(hDll!=NULL)rn rn searchFun=(lpSearchFun)GetProcAddress(hDll,"Search");rn if(searchFun!=NULL)rn rn int result=searchFun("a","a",1,"a");rn CString a;rn a.Format("%d",result);rn AfxMessageBox(a);rn rn FreeLibrary(hDll);rn rn当运行到这里(最后一个“”)出现上述错误提示
CGI调动态库,出错?
我现在是boa起的http serverrn我把共通用的几个函数封装到了一个libcommon.so里面rn然后我的cgi程序调用这几个库rn我的cgi程序在本地运行是良好的,但是从页面调用的时候就出500的错误rn我尝试把libcommon.so里面的东西放在本地,问题就解决了rn但是我想问为什么作为动态库的时候就不行了?rn我猜是某个环境变量没设置好,但是不知道是哪个,大家帮我看看rn
动态库连接出错
调试时正确,在生成正式版是提示动态库连接出错,我主要用了ADO技术,请问我该怎么改啊?rn
Linux 运行时 寻找动态库过程
1:通过命令 LDD  XXX 可以得到程序运行时依赖的动态库 2:通过系统调用函数 execve,执行该程序, 3:用 [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2] 动态链接库  链接需要的动态库 4:在默认路径下寻找 路径+依赖库名称 5:在open("/etc/ld.so.cache)中寻找  open("
软件运行时动态库依赖分析器
分析各进程运行所需支持文件,打包文件,制作安装程序时可能会用到
qt 制作动态库 (程序运行时)
编译步骤: 1.拷贝qt目录的文件夹 cp -d -R lib libexec phrasebooks plugins resources translations /home/mch/workspace/svnspace/test2/buildexec  拷贝这些文件到一个新目录 (删除不需要的cd lib;rm *.la *.prl;然后进入将lib目录下的文件都创建软链接到libexe
Linux连接动态库和动态库
现在有动态库(Libso.so)和静态库(Liba.a)rn\lib\Libso.sorn\lib\Liba.arn编写Makefile如何都连接?
动态库
我想在GetDVicse里面调用tt函数要怎么实现了然后还要生成dll?还有就是老是说重定义不同类型的标识符 高手们帮下忙啦rnint __stdcall GetDVicse(LPGUID pGuid,rn LPTSTR pType,rn INT iOrder,rn LPTSTR pSerialNumber,rn LPTSTR pDeviceName)rnint num=0;rnif(iOrder==0)rnrn num=tt(1,7)rnelsernrn num=tt(2,8)rn rn return num;rnrnrnextern "C" BOOL PASCAL EXPORT ExportedFunction()rn rn AFX_MANAGE_STATE(AfxGetStaticModuleState());rn // 此处为普通函数体rn int tt(int x,int y)rn rn return x+y;rn rn
Npoi动态库Npoi动态库
Npoi动态库
linux动态库及动态库的版本管理
Linux下动态库有三个名字:real name、so name、link name。 real name:共享库本身的名字,命名格式为libname.so.x.y.z,lib是前缀,name是共享库的名字,so是后缀,x是主版本,y是次版本号,z是发布版本号。 主版本号、次版本号和发布版本号的意义如下: 主版本号:表示库的重大升级,比如改变了原有的接口。不...
linux 下 动态库调用动态库
我的一个动态库 a.so 调用动态库 b.sorn我的一个CGI调用我这个动态库arnrn动态库 a,b 都已经生成好,并安装到 lib 目录下面rnrnrn编译CGI时提示 a 调用 b 里面的函数未定义。有没有哪位遇到过这样的问题?rnrn高手到这里回答,还有100分:rnrn[url=http://topic.csdn.net/u/20100828/09/5cca7813-b863-4c58-b2c4-a916f045e316.html?4412]http://topic.csdn.net/u/20100828/09/5cca7813-b863-4c58-b2c4-a916f045e316.html?4412[/url]
msvcr动态库与msvcp动态库
包含msvcr100_clr0400.dll、msvcr100d.dll、msvcr100.dll、msvcp100.dll、msvcp100d.dll。有时候玩游戏或使用别人开发的程序会提示缺少此类动态库,希望对大家有帮助
动态库调用动态库
我的一个动态库 a.so 调用动态库 b.sorn我的一个CGI调用我这个动态库arnrn动态库 a,b 都已经生成好,并安装到 lib 目录下面rnrnrn编译CGI时提示 a 调用 b 里面的函数未定义。有没有哪位遇到过这样的问题?
Qt应用程序和动态库国际化使用
#Qt使用国际化 ###应用程序中使用 VS插件中创建.ts文件。 打开.ts文件翻译,发布成.qm文件 在程序中加载翻译 QTranslator *pTran = new QTranslator(&a); pTran->load(qmFile); a.installTranslator(pTran) ###动态库中使用 VS插件中创建.ts文件。 打开.ts...
DLL应用程序 和动态库DLL 区别
一直以为DLL就是提供一个函数库,供程序复用而已rn今天突然看到还有 DLL应用程序 ,把我搞晕了rn到底DLL应用程序 和动态库DLL 区别?rn是不是我们平时说的 动态库DLL 就是这个扩展DLL 呢
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件