主题 : ldd 命令看执行所需的库时,需要不同的路径下的相同库,如何破? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 98670
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2013-12-04
最后登录: 2014-01-21
楼主  发表于: 2013-12-11 17:04

 ldd 命令看执行所需的库时,需要不同的路径下的相同库,如何破?

所需要的:libopencv_core.so可以找的到;但是还需要:   ../../lib/libopencv_core.so,这个so文件就找不到了,造成无法运行。谢谢。
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2013-12-11 17:21

 回 楼主(arvin.k) 的帖子

这个看起来多半是不正常的,执行档编译的问题?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 98670
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2013-12-04
最后登录: 2014-01-21
2楼  发表于: 2013-12-12 09:51
在ubuntu虚拟机上编译的时候,就会出现如下告警:“../../lib/libopencv_core.so needed by usr/local/arm-opencv/lib/libopencv_calib3d.so not found”,可是编译的时候,我已经用-Wl,-rpath-link,-wl,(lib位置)进行编译了,这个报警依然不能消除。然后在开发板进行ldd命令就会出现找不到库的情况。实际上这个库已经找到了,可为什么还需要两个路径的同样的库呢,是环境变量的问题吗?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2013-12-12 10:24

 回 2楼(arvin.k) 的帖子

你是怎么编译的?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 98670
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2013-12-04
最后登录: 2014-01-21
4楼  发表于: 2013-12-12 11:14

 回 3楼(kasim) 的帖子

arm-linux-g++ -Wl,-rpath-link -Wl,/usr/local/arm-opencv/lib `pkg-config --cflags arm-opencv` `pkg-config --libs arm-opencv` arm_readbmp.cpp -lpthread -lrt -o arm_readbmp,
其中opencv在arm环境的编译是按照如下操作的:http://wenku.baidu.com/link?url=TMaRcCntCzyPtLD5fbAjsA-cyIWxmoGOxXrPTaorrEP5Sx_SymlPJPl3zWh_BFgEIwAyt2y3nzXVr0QqYhsN745HWXox0NzHXv04LOjwh8m
在生成整个arm-opencv库的时候没有出现其它异常的情况。就是arm-linux-gcc工具不同,我用的是friendlyarm自带的arm-linux-gcc工具。
之前我用opencv2.4.5版本进行测试的,会出现如此情况,我刚又用opencv2.4.0(和文档一致的版本)进行了重新生成,依然还是不行,依然还是出现找不到库的情况。。。。。
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2013-12-12 11:47

 回 4楼(arvin.k) 的帖子

如果不用pkg-config, 直接用-I和-L参数呢?
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 98670
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2013-12-04
最后登录: 2014-01-21
6楼  发表于: 2013-12-12 17:36

 回 5楼(kasim) 的帖子

依然不行。。。。。。。。
级别: 新手上路
UID: 98670
精华: 0
发帖: 17
金钱: 85 两
威望: 17 点
综合积分: 34 分
注册时间: 2013-12-04
最后登录: 2014-01-21
7楼  发表于: 2013-12-16 17:31

 回 5楼(kasim) 的帖子

多谢楼主的关注,该问题已经解决!
在单板上,有时候把.so文件拷到/lib文件夹下是可以的,有时候拷到/lib文件夹下还是不行的。
在单板上设置完LD_LIBRARY_PATH之后,问题就解决了。3Q!