设置 Linux 的 LD_LIBRARY_PATH 变量

from : http://www.cnblogs.com/waterlin/archive/2011/07/14/2106056.html


在 Linux 下,如果你写好了自己的动态链接库,需要在其它程序里调用,则需要让这些程序能找到这些动态链接库。如果设置不对,会出现类似如下的错误:

test: error while loading shared libraries: libexampleso.so.0: cannot open shared object file: No such file or directory

这是因为没有把动态链接库的安装路径(例如说是 /usr/local/lib )放到变量 LD_LIBRARY_PATH 里。

这时,可以用命令 export 来临时测试确认是不是这个问题:

export LD_LIBRARY_PATH=/usr/local/lib

在终端里运行上面这行命令,再运行这个可执行文件,如果运行正常就说明是这个问题。

接下来的问题是:以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;如何把这个值持续写到 LD_LIBRARY_PATH 里呢?

我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。


总结:

怎样设置共享库的路径,使得系统能够搜索到这些库。主要以下几种方法:

1)将共享库放在目录/lib或者/usr/lib下,并使用ldconfig使得添加即使生效

1)将动态库目录添加到文件/etc/ld.so.conf,并使用ldconfig使得添加即使生效

2)在文件~/.bashrc文件中加入

if [ -d "$HOME/lib"] ; then
export LD_LIBRARY_PATH="$HOME/lib"
fi

这样设置的环境变量LD_LIBRARY_PATH只能在bash下使用。在其他shell下比如kshtcsh下不可以使用这些环境变量。

3)在~/.profile或者/etc/environment下编辑环境变量LD_LIBRARY_PATH

同时编辑/etc/X11/Xsession.options文件,将use-ssh-agent更改为no-use-ssh-agent

这样设置的环境变量LD_LIBRARY_PATH可以通用

4-R选项指定共享库目录



from  : http://blog.csdn.net/lqhbupt/article/details/7875112



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值