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