/usr/bin/ld: cannot find -lxxx問題總結

/usr/bin/ld: cannot find -lxxx問題總結

linux下編譯應用程序常常會出現如下錯誤:

  /usr/bin/ld: cannot find -lxxx

       意思是編譯過程找不到對應庫文件。其中,-lxxx表示鏈接庫文件 libxxx.so。

       注:有時候,由於庫文件是編譯過程臨時生成的,如果前面出錯也會導致出現這種情況,下面針對的是由於本機系統環境缺失而引起的。。

       一般出現這種錯誤有以下幾種原因:

1.系統缺乏對應的庫文件;

2.版本不對應;

3.庫文件的鏈接錯誤;

4.庫文件路徑設置問題。

       對應第一第二種情況,可以通過下載安裝lib來解決,ubuntu大多數可以直接通過apt-get來安裝:

apt-get install libxxx-dev

       一般遇到這種問題筆者第一時間也是會去檢查系統是否已安裝該lib或者是否已選擇正確版本(只是習慣問題),如果還是不能解決問題,那麼,引起錯誤的原因不是鏈接錯誤就是庫文件路徑問題了。

       通過find或者locate指令定位到鏈接文件,查看鏈接文件是否正確的指向了我們希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。



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