永发信息网

linux可执行文件与依赖库的疑问

答案:2  悬赏:20  手机版
解决时间 2021-04-05 17:14
  • 提问者网友:我一贱你就笑
  • 2021-04-05 00:25
交叉编译opencv完后把动态库移到板子上,并尝试运行一个小程序。却得到以下结果:
libopencv_core.so => /usr/lib/libopencv_core.so (0xb6e17000)
libopencv_imgproc.so => /usr/lib/libopencv_imgproc.so (0xb6c13000)
libopencv_highgui.so => /usr/lib/libopencv_highgui.so (0xb6a4f000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6a34000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6a26000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6942000)
libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb68d7000)
libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb682f000)
libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb680d000)
/lib/ld-linux-armhf.so.3 (0xb6fc1000)
../../lib/libopencv_core.so => not found
../../lib/libopencv_core.so => not found
../../lib/libopencv_imgproc.so => not found

so都以摆在/usr/lib/下了,并且也执行了ldconfig,但还是解决不了。是不是“../../lib/libopencv_imgproc.so”这个路径的问题,但是不明白这个路径是怎么来的,应该怎么处理呢?
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-04-05 00:31
编译阶段应该要指定库德绝对路径吧,如果确定要使用这个可执行文件的话就得把相关库文件copy到../../lib目录
全部回答
  • 1楼网友:青灯有味
  • 2021-04-05 01:16
在x86下,为了查看程序所依赖的库,可以使用ldd命令 但如果是使用arm-linux-gcc 等交叉编译环境编译出来的程序,则要使用readelf命令来查看了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯