1. 程式人生 > >ubuntu下cannot find lib....so.x 尋找動態連結庫

ubuntu下cannot find lib....so.x 尋找動態連結庫

預設從/lib 、 /usr/lib 以及配置檔案/etc/ld.so.conf內所列的目錄下載入.so檔案,

進而創建出動態裝入程式(ld.so)所需的連線和快取檔案。

快取檔案預設為/etc/ld.so.cache,該檔案儲存已排好序的動態連結庫名字列表。

ldconfig通常在系統啟動時執行,而當用戶安裝了一個新的動態連結庫時,就需要將so檔案的地址寫入/etc/ld.so.conf,就需要手工執行ldconfig這個命令。

 

1.可以使用sudo find /  -name  檔名查詢地址,

2.然後sudo gedit /etc/ld.so.conf,將地址新增在最後一行

3.使修改生效  sudo ldconfig

 

可以使用ldd filename檢視可執行檔案所依賴的動態連結庫

 

ldconfig需要注意的地方:

1、往/lib和/usr/lib裡面加東西,是不用修改/etc/ld.so.conf檔案的,但是新增完後需要呼叫下ldconfig,不然新增的library會找不到。

2、如果新增的library不在/lib和/usr/lib裡面的話,就一定要修改/etc/ld.so.conf檔案,往該檔案追加library所在的路徑,然後也需要重新呼叫下ldconfig命令。比如在安裝MySQL的時候,其庫檔案/usr/local/mysql/lib,就需要追加到/etc/ld.so.conf檔案中。命令如下:

# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf

# ldconfig -v | grep mysql

3、如果新增的library不在/lib或/usr/lib下,但是卻沒有許可權操作寫/etc/ld.so.conf檔案的話,這時就需要往export裡寫一個全域性變數LD_LIBRARY_PATH,就可以了。

若修改變數LD_LIBRARY_PATH無效,則修改變數LIBRARY_PATH

 

參考部落格:

https://blog.csdn.net/chenzixun0/article/details/56278632/