解決方案:
使用ld_library_path
環境變數來配置,具體操作見案例。
ld_library_path
是linux環境變數名,該環境變數主要用於指定查詢共享庫(動態鏈結庫)時除了預設路徑之外的其他路徑。
設定完成後,動態鏈結器會優先在該變數設定的路徑中查詢,若未找到則在標準庫路徑/lib
和/usr/lib
中繼續查詢。
案例:呼叫/mylib下的test.so
gedit ~/.bashrc
# 鍵入:
export ld_library_path=
$ld_library_path:/home/miracle/mylib
# 儲存並退出
# source
source ~/.bashrc
Linux動態庫路徑配置
為什麼要關注動態庫路徑配置,是因為工作中遇到動態庫依賴其他動態庫,而其他動態庫又找不到的問題。有一篇部落格寫的特別全 linux 系統上有兩類根本不同的 linux 可執行程式。第一類是靜態鏈結的可執行程式。靜態可執行程式包含執行所需的所有函式 換句話說,它們是 完整的 因為這一原因,靜態可執行程式...
linux指定動態庫路徑
通常有兩種方法 1.把動態庫放到系統庫或者在系統庫中做乙個鏈結,這樣編譯和執行都會去系統庫找。這樣容易引起系統庫混亂。2.export ld library path 指定庫搜尋路徑,但是這樣登出再登陸就沒了。還有第三種方法,編譯時使用 wl,rpath,wl,路徑 這樣就能把路徑編譯到可執行檔案裡...
linux 動態庫路徑查詢
linux 執行的時候,是如何管理共享庫 so 的?在 linux 下面,共享庫的尋找和載入是由 lib ld.so實現的。ld.so 在標準路經 lib,usr lib 中尋找應用程式用到的共享庫。但是,如果需要用到的共享庫在非標準路經,ld.so 怎麼找到它呢?目前,linux 通用的做法是將非...