編譯時找不到動態庫解決方案

2021-09-29 15:51:47 字數 1127 閱讀 6353

在linux下編譯程式經常會出現找不到動態庫的問題,通常有以下幾種解決方法

進行原始碼安裝,通過–prefix == /usr/***x 可以自定義安裝目錄(./configure --prefix=/foo),預設時會安裝在/usr/local目錄下

檢測安裝環境

生成makefile

make

編譯源**生成一些動態(靜態)庫和可執行程式

sudo make install

將資料拷貝到對應目錄,如果目錄不存在則建立該目錄

如果不指定時會使用預設目錄:/usr/local(使用者自己安裝一些庫,可執行程式的預設目錄)或者是/opt。在/usr/local下的子目錄下又有/include/local/include(存放標頭檔案)/usr/local/bin(二進位制可執行檔案)/usr/local/lib(庫檔案)

—找不到動態庫的時候可以

ldd a.out
可以檢視到a.out需要的動態庫和動態庫的鏈結器

—找到庫檔案

sudo find /usr/local -name"libevent.so"
—將***.so檔案放到/usr/lib目錄中

—找到庫檔案後將檔案放到環境變數ld_library_path中

export ld_libraray_path = ***(庫絕對路徑)
將該**可以放到~/.bashrc或者是/etc/profile

—~/.bashrc 使用者級別

1.設定完後需要重啟終端 更換使用者失效

2.或者在設定完後 .~/.bashrc(此處.等價於source)

—/etc/profile 系統級別

1.設定完後需要重啟虛擬機器

2.或者在設定完後./etc/profile

—修改/etc/ls.so.conf

1.將動態庫路徑(絕對路徑)新增到該檔案中

2.更新設定sudo ldconfig -v(-v是顯示更新資訊)

然後就可以在編譯時指定庫

gcc text.c -levent

VBA 工程 找不到工程或庫 解決方案

近來,越來越多的朋友被 找不到工程或庫 的錯誤所煩惱,所以決定新開一帖來聊聊此問題!quote 一般情況下,出現此錯誤是因為找不到引用工程,或找不到與工程語言對應的引用的物件庫 出現此類錯誤可以根據下面操作解決 quote 1.在vbe視窗中選擇出錯的vba工程 2.在 工具 引用 開啟引用對話方塊...

找不到動態庫

找到 so檔案 這裡拿libevent.so為例 sudo find usr local name libevent.so 放到 usr local 或者是 lib 將 so放到環境變數中 1.將動態庫所在目錄的絕對路徑臨時新增到環境變數中 隨終端關閉失效 export ld library pat...

程式執行時找不到庫的解決方案

一.使用ld library path變數 scp error while loading shared libraries libz.so.1 cannot open shared object file no such file or directory 那麼直接執行export ld libr...