Linux加載/usr/local/lib中的so庫問題

在Linux中運行qTox時,出現一些庫加載不上(libavcode***,從新安裝也不行),而後下載源碼進行編譯(http://www.javashuo.com/article/p-fdarvllw-cy.html),而後能夠運行。說明是一些庫的版本不兼容致使的。shell

問題

可是,編譯qTox後,在當前目錄使用./qtox能夠運行,若是使用make install 後經過qtox命令則沒法運行,提示libtoxcore庫找不到,到/usr/local/lib中去看,庫是在的,並且是剛編譯的,版本也沒有問題。bash

後來發現,/usr/local/lib默認沒有在Linux的搜索路徑中,致使找不到。測試

把動態連接庫的安裝路徑(例如說是 /usr/local/lib )放到變量 LD_LIBRARY_PATH 裏,就能夠了。spa

驗證

能夠用命令 export 來臨時測試確認是否是這個問題:.net

export LD_LIBRARY_PATH=/usr/local/lib

在終端裏運行上面這行命令,再運行這個可執行文件,若是運行正常就說明是這個問題。code

設置

以上作法,只是臨時設置變量 LD_LIBRARY_PATH ,下次開機,一切設置將不復存在。blog

如何把這個值持續寫到 LD_LIBRARY_PATH 裏呢?get

bash設置

咱們能夠在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 語句,前者在每次登錄和每次打開 shell 都讀取一次,後者只在登錄時讀取一次。源碼

加到 ~/.bashrc 中,在該文件的未尾,可採用以下語句來使設置生效:qt

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

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

profile設置

也能夠放在/etc/profile中,這是系統全局設置,或者在~/.profile中,是針對當前用戶的設置。

能夠使用source /etc/profile的方式來讓設置當即生效。

相關文章
相關標籤/搜索