关闭

设置 Linux 的 LD_LIBRARY_PATH 变量

标签: linux环境
561人阅读 评论(0) 收藏 举报

我们在ubuntu图形界面下用eclipse写了一个动态库,到centos下调用时出现错误,   

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

以为没装mysql-client,因为ubuntu下叫这个,但是centos下直接就叫mysql,服务器版本叫mysql-server,查找了一下libmysqlclient.so

find / -name libmysqlclient.so,果然发现不同:

这是因为没有把动态链接库的安装路径(例如说是 /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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:753383次
    • 积分:8996
    • 等级:
    • 排名:第2304名
    • 原创:45篇
    • 转载:632篇
    • 译文:0篇
    • 评论:55条
    最新评论