1. 程式人生 > >執行時,so庫找不到的原因

執行時,so庫找不到的原因

ldconfig是一個動態連結庫管理命令,其目的為了讓動態連結庫為系統所共享。

ldconfig的主要用途:
預設搜尋/lilb和/usr/lib,以及配置檔案/etc/ld.so.conf內所列的目錄下的庫檔案。
搜尋出可共享的動態連結庫,庫檔案的格式為:lib***.so.**,進而創建出動態裝入程式(ld.so)所需的連線和快取檔案。
快取檔案預設為/etc/ld.so.cache,該檔案儲存已排好序的動態連結庫名字列表。
ldconfig通常在系統啟動時執行,而當用戶安裝了一個新的動態連結庫時,就需要手工執行這個命令。
    
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,就可以了。