我已经将一些共享库安装到非标准目录中/usr/lib64/mylib
。然后我就跑sudo ldconfig /usr/lib64/mylib
。我可以通过运行来断言ldconfig -p
我的库确实被缓存了。但是,当我尝试编译链接到一个库的某个程序时,该程序又链接到安装在其中的另一个库,但/usr/lib64/mylib
出现以下错误:
/usr/bin/ld: warning: libmy.so.3, needed by ./build/libtools.so.3.1.0.0, not found (try using -rpath or -rpath-link)
以及许多未定义的引用。
/usr/lib64/mylib
如果我将/etc/ld.so.conf
或 添加到环境变量中,则不会发生这种情况LD_LIBRARY_PATH
。那么运行 的效果是什么sudo ldconfig /usr/lib64/mylib
?
编辑:我发现当我ldconfig -p
第二次运行时,引用我的共享对象的行被删除,因此由于某种原因它们会在那里保留很短的时间。