我有一个C程序(IDS涡旋),它使用一个库libbsf。我有几个或多或少相同的ubuntu机器和涡旋工作在所有的酒吧,其中之一。
在那个问题上,它找不到图书馆。显式设置LD_LIBRARY_PATH=/usr/local/lib有效。
/usr/local/lib和/etc/ld.so.conf/libc.conf一样在/etc/ld.so.conf。
运行ld.config -v可以找到库。
对于什么可以干扰和阻止这个可执行文件在运行时查找库,我感到困惑。
我已经将可执行文件复制到了它找到库的另一台机器上。
最初,我使用木偶将可执行文件和库分发给所有机器,当它在一台机器上失败时,我最终编译了实际机器上的所有位,然后才确定它确实是库路径的一个问题。设置LD_LIBRARY_PATH验证了这一点。
征求意见!!
发布于 2014-08-14 05:16:22
在不运行ldconfig的情况下更改/etc/ld.so.conf中的任何内容都会导致问题。在这种情况下,我不知道事情是如何不同步的,但您不能假设ld.so.conf的当前状态反映了运行时发生的情况。
把我指向斯特拉斯是有用的(谢谢!)我开始对ld.conf进行黑客攻击,但我没有做任何改变。然后一位同事向我指出了ldconfig。
https://stackoverflow.com/questions/25299860
复制相似问题