設置 Linux 的 LD_LIBRARY_PATH 變量


我們在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

修改完后,記得關掉當前終端並重新打開一個新的終端,從而使上面的配置生效。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM