解決Make時,“/usr/bin/ld: 找不到 -lXXX”問題的三種方法

迴音谷發表於2020-11-14

比如:

/usr/bin/ld: 找不到 -lboost_serialization

可能是英文:

/usr/bin/ld:cannot find-lboost_serialization

意思是找不到boost_serialization共享庫,這個庫的檔名應該為“libboost_serializatio.so”,其命名規則是:lib+庫名(即xxx)+.so。
方法一:
用locate命令定位XXX庫檔案

locate libXXX.so

定位結果:

/usr/local/ahuasdk/libXXX.so

再用軟連結將兩者連結起來

sudo ln -s /usr/local/ahuasdk/libXXX.so /usr/lib/libXXX.so

方法二:
若定位不到對應的庫檔案則說明可能沒有裝這個庫,可以用以下方法尋找

$ sudo apt-get install apt-file
$ apt-file update
$ apt-file search libXXX.so

apt-file 將列出所有包含libXXX.so檔案的apt包,
選擇相應的包用apt-get安裝即可。通常請選擇帶dev的包安裝,apt-get的用法請自查。
(參考自:https://www.cnblogs.com/laowangxieboke/p/12657546.html
方法三:
如果方法二找不到含libXXX.so的apt包,則可以通過ubuntu官網搜尋:
https://packages.ubuntu.com/
搜尋時選擇對應的系統版本,建議勾選“Only show exact matches”。

相關文章