为什么共享库是通过绝对路径链接的?

时间:2010-10-22 03:14:03

标签: c++ linker shared ldd

我通过链接libociei.so和libcustome.so

创建一个应用程序

CC -o main main.cpp ../lib/libociei.so ../ lib / libcustome.so

并将libociei.so libcustome.so复制到/ usr / lib

然后我使用ldd检查库,它显示:

   main .....
   libcustome.so  ===>   /usr/lib/libcustome.so
   ../lib/libociei.so

为什么libociei.so没有重定位到/usr/lib/libociei.so?

ps:ld库路径是/ lib:/ usr / lib而且我没有将../lib添加到ld库路径

2 个答案:

答案 0 :(得分:0)

如果您使用的是Linux(比如Ubuntu),那可能是因为您没有运行:

sudo ldconfig

在其他系统上,我不太确定。

答案 1 :(得分:0)

使用readelf -d main时,NEEDED条目是否具有完整路径?

我的猜测是ldd正在寻找默认路径中的库。