今天在執行乙個protobuf程式時,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: no such file or directory錯誤。google了一下,是由於找不到lib這個檔案。
解決辦法:
一般我們在linux下執行某些外部程式的時候可能會提示找不到共享庫的錯誤, 比如:
tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: no such file or directory
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
3) 如果共享庫檔案安裝到了其它"非/lib或/usr/lib" 目錄下, 但是又不想在/etc/ld.so.conf中加路徑(或者是沒有許可權加路徑). 那可以export乙個全域性變數ld_library_path, 然後執行程式的時候就會去這個目錄中找共享庫.
ld_library_path的意思是告訴loader在哪些目錄中可以找到共享庫. 可以設定多個搜尋目錄, 這些目錄之間用冒號分隔開. 比如安裝了乙個mysql到/usr/local/mysql目錄下, 其中有一大堆庫檔案在/usr/local/mysql/lib下面, 則可以在.bashrc或.bash_profile或shell裡加入以下語句即可:
export ld_library_path=/usr/local/mysql/lib:$ld_library_path
一般來講這只是一種臨時的解決方案, 在沒有許可權或臨時需要的時候使用.
找不到動態庫
找到 so檔案 這裡拿libevent.so為例 sudo find usr local name libevent.so 放到 usr local 或者是 lib 將 so放到環境變數中 1.將動態庫所在目錄的絕對路徑臨時新增到環境變數中 隨終端關閉失效 export ld library pat...
解決linux找不到動態庫的問題
動態庫即共享庫,說到linux找不到動態庫的問題,首先要了解動態庫的特點 動態庫把對一些庫函式的鏈結載入推遲到程式執行的時期。可以實現程序之間的資源共享。因此動態庫也稱為共享庫 將一些程式公升級變得簡單。甚至可以真正做到鏈結載入完全由程式設計師在程式 中控制 顯示呼叫 由上述中的第1點可知,動態庫並...
QTcreator找不到庫
1.linux庫的命名規則是 動態庫和靜態庫的名字前家lib字首,也就是自己製作的庫的名字為 lib名字.so 或 lib名字.a 但比較詭異的是gcc在編譯的時候命令是沒有字首lib和字尾.so和a。比如gcc l名字 0 main main.c。2.在qt編譯構建的過程中,經常發現 usr bi...