当前位置: 技术问答>linux和unix
linux共享文件库路径设置
来源: 互联网 发布时间:2016-09-09
本文导语: 我下载个函数库源码,编译之后放在/usr/local/lib下 我蟹盖了/etc/ld.so.conf文件,但是还是找不到 文件内容如下 include /etc/ld.so.conf.d.*.conf include /usr/local/lib/ //这是我自...
我下载个函数库源码,编译之后放在/usr/local/lib下
我蟹盖了/etc/ld.so.conf文件,但是还是找不到
文件内容如下
include /etc/ld.so.conf.d.*.conf
include /usr/local/lib/ //这是我自己添加的
请问大虾解决方案
我蟹盖了/etc/ld.so.conf文件,但是还是找不到
文件内容如下
include /etc/ld.so.conf.d.*.conf
include /usr/local/lib/ //这是我自己添加的
请问大虾解决方案
|
你添加错了
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib/ //这是我自己添加的
改成
include /etc/ld.so.conf.d/*.conf
/usr/local/lib/
因为include /etc/ld.so.conf.d/*.conf这一句是包含/etc/ld.so.conf.d/下别的设定文件里加载的库路径 并不是直接加载库 你可以看看/etc/ld.so.conf.d/下的那些文件里是如何添加库路径的
是不带include的!
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib/ //这是我自己添加的
改成
include /etc/ld.so.conf.d/*.conf
/usr/local/lib/
因为include /etc/ld.so.conf.d/*.conf这一句是包含/etc/ld.so.conf.d/下别的设定文件里加载的库路径 并不是直接加载库 你可以看看/etc/ld.so.conf.d/下的那些文件里是如何添加库路径的
是不带include的!
|
动态库的搜索路径搜索的先后顺序是:
1.编译目标代码时指定的动态库搜索路径;//g++ main.cpp -Wl,-rpath=. -ltest -L.
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径 /usr/lib
按照这个顺序,lz可以有以下方式修正:
1、在编译目标代码的时候,加上-Wl,-rpath=/usr/local/lib
2、在你的~/.bash_profile里,加上export LD_LIBRARY_PATH=/usr/local/lib 然后执行. ~/.bash_profile
3、配置你的/etc/ld.so.conf,加上一句/usr/local/lib
4、so放到/lib目录下
5、so放到/usr/lib目录下!
|
熊猫的Linux经验真是丰富啊…………