foobar
我有一个使用共享库的程序。我LD_LIBRARY_PATH
正确设置了,然后当我运行时
>ldd foobar
我可以看到它知道所需的所有库的完整路径。
但是,在某些系统(“较大”)上,我不需要LD_LIBRARY_PATH
知道ldd
库在哪里,而在某些系统(“较小”)上,我需要知道库在哪里。
在两个系统上,可执行文件foobar
是相同的,它的路径是相同的,并且所有库和它们的路径都是相同的。
所以这意味着,rpath
在两种情况下,可执行文件的内置内容是相同的。
那么一定还有其他方法可以确定图书馆的位置吗? 是什么方法呢?
答案1
/lib 和 /usr/lib 是自动添加的。其他库从 /etc/ld.so.conf 文件中添加。
答案2
ldconfig
是一个维护共享库缓存的实用程序。正确配置后,正确的库路径将被缓存并可供管理人员使用。您可以使用它ldconfig -p
来打印当前可用的库候选。
请参阅 的手册页ldconfig(8)
。