鏈結和執行檔案時,總會遇到cant find ***x.so的錯誤。我們需要將共享庫所在目錄加入到系統的掃面目錄。
系統預設掃瞄目錄為/lib、/usr/lib、/usr/local/lib,這三個目錄加入效果都一樣,只是因為規範問題所以有多個目錄。將***x.so檔案複製到上述目錄,在鏈結時系統就會自動進行尋找。
但是執行時,仍會出現找不到包的問題,這是因為二進位制檔案執行時,為了加快執行速度,會直接讀取ld.so.cache這個快取檔案。執行ldconfig命令,將檔案加入快取。
將共享庫所在目錄,加入ld.so.conf檔案,這樣系統就會自動掃瞄目錄。這種方法同樣需要執行ldconfig。
修改ld_library_path環境變數
export ld_library_path=/home/yourid/sodir:$ld_library_path
有時修改不起作用,這是我們去修改library_path這個變數
export library_path=/home/yourid/sodir:$library_path
修改環境變數的方法一般用於程式除錯,並不建議用於平時使用 so 載入符號找不到的問題解決
so 載入符號找不到的問題解決 warning could not load test.so cannot load library reloc library 1312 1332 cannot locate aeabi f2uiz 這個問題是gcc的編譯問題,需要把gcc.a打進去即可,但是解決問...
解決linux找不到動態庫的問題
動態庫即共享庫,說到linux找不到動態庫的問題,首先要了解動態庫的特點 動態庫把對一些庫函式的鏈結載入推遲到程式執行的時期。可以實現程序之間的資源共享。因此動態庫也稱為共享庫 將一些程式公升級變得簡單。甚至可以真正做到鏈結載入完全由程式設計師在程式 中控制 顯示呼叫 由上述中的第1點可知,動態庫並...
MVC幾種找不到資源的問題解決辦法
在mvc中,controller中的action和view中的.cshtml檔名稱有乙個對應的關係。當不對應時,有以下幾種情況發生 一 找不到檢視的錯誤 請求url http localhost 13850 customer create controller中有對應的action view中沒有相...