/usr/bin/ld: cannot find -lxxx問題總結linux
linux下編譯應用程序經常會出現以下錯誤:ubuntu
/usr/bin/ld: cannot find -lxxxide
意思是編譯過程找不到對應庫文件。其中,-lxxx表示連接庫文件 libxxx.so。spa
注:有時候,因爲庫文件是編譯過程臨時生成的,若是前面出錯也會致使出現這種狀況,下面針對的是因爲本機系統環境缺失而引發的。。orm
通常出現這種錯誤有如下幾種緣由:get
1.系統缺少對應的庫文件;it
2.版本不對應;io
3.庫文件的連接錯誤;編譯
4.庫文件路徑設置問題。class
對應第一第二種狀況,能夠經過下載安裝lib來解決,ubuntu大多數能夠直接經過apt-get來安裝:
apt-get install libxxx-dev
通常遇到這種問題筆者第一時間也是會去檢查系統是否已安裝該lib或者是否已選擇正確版本(只是習慣問題),若是仍是不能解決問題,那麼,引發錯誤的緣由不是連接錯誤就是庫文件路徑問題了。
經過find或者locate指令定位到連接文件,查看連接文件是否正確的指向了咱們但願的lib,若是不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。