首頁 > 軟體

Linux程式找不到動態庫的解決方法

2020-06-16 17:14:57

思路:一般來說,通過make命令已經將程式依賴的動態庫編譯出來了,通過make install命令已經將動態庫安裝到系統的某個路徑下。找沒找到動態庫就看這個路徑是否包含在系統預設搜尋動態庫的路徑中,如果不在,那麼就會提示找不到動態庫。以下三種方法,就是根據前面的分析來解決的。

方法一:修改LD_LIBRARY_PATH環境變數

特點:這種方法主要處理臨時的動態庫載入,LD_LIBRARY_PATH環境變數修改後,只能是對當前的使用者生效。

LD_LIBRARY_PATH的作用:這個環境變數用於在程式載入執行期間查詢動態連結庫時指定除了系統預設路徑之外的其他路徑,注意,LD_LIBRARY_PATH中指定的路徑會在系統預設路徑之前進行查詢。

具體步驟:

1、找到動態庫所在路徑:sudo find / -name "[動態庫名字]"

2、開啟~/.bashrc檔案

3、在該檔案最後一趟新增:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:[動態庫所在的絕對路徑]

4、source ~/.bashrc

方法二:修改/etc/ld.so.conf組態檔

特點:對所有使用者生效。不是每個作業系統都有這個組態檔,就Ubuntu系統有。

/etc/ld.so.conf的作用:記錄了程式載入執行期間查詢動態連結庫時的路徑。

具體步驟:

1、找到動態庫所在路徑:sudo find / -name "[動態庫名字]"

2、開啟/etc/ld.so.conf檔案:sudo vi /etc/ld.so.conf

3、在最後一行新增動態庫的絕對路徑

4、重新載入/etc/ld.so.conf檔案:sudo ldconfig -v

方法三:建立動態庫的軟連線(推薦)

特點:讓所有使用者生效;並且通用,只要是Linux型別的作業系統,都會去/usr/lib目錄下去找動態庫。

具體步驟:

1、找到動態庫所在路徑:sudo find / -name "[動態庫名字]"

2、建立動態庫軟連線:ln -s [動態庫] [待建立的軟連結]

注意:

1、建立軟連線的時候要用絕對路徑,如果用相對路徑,會導致只在當前路徑有效,其他路徑這個軟連線就找不到了。

2、不建議用cp的方式代替ln -s的方式。原因:當動態庫升級的時候,有可能導致動態庫版本不一致,還是連結的舊版本。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/143820.htm


IT145.com E-mail:sddin#qq.com