【LInux】找不到動態鏈接庫文件的問題

安裝了 libevent,程序運行時出現了錯誤提示:

error while loading shared libraries: libevent-2.0.so.5

問題很明顯,系統沒能找到 libevent 的動態鏈接庫文件

原因在於 libevent 沒有安裝在系統存放動態鏈接庫的目錄中,當然,也就有兩種方式可以解決,一種是通過查找相應的目錄和對應的環境變量,將目錄加入系統環境變量中即可

定位問題

通過執行 ldd 命令可以看到程序究竟調用了哪些動態鏈接庫,哪些無法找到

ldd main

 

可見只有 libevent-2.0.so.5 沒有找到

定位 libevent-2.0.so.5

whereis libevent-2.0.so.5

 

他在 /usr/local/lib 目錄下

定位系統目錄

定位系統動態鏈接庫的目錄一個方法是通過環境變量來查找,然而,更簡單的方法是直接看我們的程序到哪個目錄去找他了

 LD_DEBUG=libs ./main -v

從輸出中我們可以看到路徑 /usr/lib

因此,我們進入這個目錄執行: sudo ln -s /usr/local/lib/libevent-2.0.so.5 .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章