/usr/bin/ld: cannot find -lxxx 問(wèn)題總結(jié)
/usr/bin/ld: cannot find -lxxx 問(wèn)題總結(jié)
2011-8-18 23:37:37??作者:HEAVEN??點(diǎn)擊數(shù):19471
/usr/bin/ld: cannot find -lxxx問(wèn)題總結(jié)。??????? linux下編譯應(yīng)用程序常常會(huì)出現(xiàn)如下錯(cuò)誤:
?
???????????????????????????????????????????????? /usr/bin/ld: cannot find -lxxx
?
??????? 意思是編譯過(guò)程找不到對(duì)應(yīng)庫(kù)文件。其中,-lxxx表示鏈接庫(kù)文件 libxxx.so。
?
??????? 注: 有時(shí)候,由于庫(kù)文件是編譯過(guò)程臨時(shí)生成的,如果前面出錯(cuò)也會(huì)導(dǎo)致出現(xiàn)這種情況,下面針對(duì)的是由于本機(jī)系統(tǒng)環(huán)境缺失而引起的。。
???????? 一般出現(xiàn)這種錯(cuò)誤有以下幾種原因:
1.系統(tǒng)缺乏對(duì)應(yīng)的庫(kù)文件;
2.版本不對(duì)應(yīng);
3.庫(kù)文件的鏈接錯(cuò)誤;
4.庫(kù)文件路徑設(shè)置問(wèn)題。
???????? 對(duì)應(yīng)第一第二種情況,可以通過(guò)下載安裝lib來(lái)解決,ubuntu大多數(shù)可以直接通過(guò)apt-get來(lái)安裝:
?
apt-get install libxxx-dev
?????? ?一般遇到這種問(wèn)題筆者第一時(shí)間也是會(huì)去檢查系統(tǒng)是否已安裝該lib或者是否已選擇正確版本(只是習(xí)慣問(wèn)題),如果還是不能解決問(wèn)題,那么,引起錯(cuò)誤的原因不是鏈接錯(cuò)誤就是庫(kù)文件路徑問(wèn)題了。
??????? 通過(guò)find或者locate指令定位到鏈接文件,查看鏈接文件是否正確的指向了我們希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。
??????? 如果是庫(kù)文件路徑引發(fā)的問(wèn)題,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf文件,(可以自建conf,以方便識(shí)別)將lib所在目錄寫(xiě)進(jìn)去,然后在終端輸入 ldconfig 更新緩存。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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