如何更改共享库搜索顺序?

时间:2012-02-22 09:02:07

标签: c++ linux

当程序需要共享库(比如libabc.so)时,它将首先检查“-labc”的路径,然后检查环境变量LD_LIBRARY_PATH,然后检查/etc/ld.so.conf。如果我希望程序首先搜索/etc/ld.so.conf,我该怎么办?

2 个答案:

答案 0 :(得分:1)

在任何-l选项之前,在文件列表中明确指定它。 在Unix(包括Linux)下,库按顺序处理 他们是一个接一个地给出的。以及是否指定库 使用-l选项或通过指定实际路径不会产生 区别;您可以使用以下内容调用g ++:

g++ file1.o file2.o ... /etc/ld.so.conf ... -labc ...

答案 1 :(得分:0)

您可以取消设置LD_LIBRARY_PATH变量。

unset LD_LIBRARY_PATH

就我而言,LD_LIBRARY_PATH变量的目的是提供一个在ld.so.conf中不存在的库。此外,您必须确保通过将其包含在/etc/ld.so.conf中提供的库位于/etc/ld.so.cache的缓存中。你已经执行了

ldconfig

以超级用户身份更新/etc/ld.so.cache