/usr/bin/ld: cannot find -lxxx 問題總結
/usr/bin/ld: cannot find -lxxx 問題總結
2011-8-18 23:37:37??作者:HEAVEN??點擊數:19471
/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 指令修改它。
??????? 如果是庫文件路徑引發的問題,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf文件,(可以自建conf,以方便識別)將lib所在目錄寫進去,然后在終端輸入 ldconfig 更新緩存。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
