動態庫找不到的問題

2021-09-21 18:51:31 字數 946 閱讀 8820

今天在執行乙個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...