最近在做畢設的收尾工作,很多程序都要部署到linux下來運行,遇到了挺多問題,昨天就集中性遇到了 在編譯應用時,遇到了
/usr/bin/ld: cannot find -lxxx
這種情況是系統找不到對應的庫文件,其中,-lxxx表示鏈接庫文件 libxxx.so。
其命名規則是:lib+庫名(即xxx)+.so。
會發生這樣的原因有以下三種情形:
1 系統沒有安裝相對應的lib
2 相對應的lib版本不對
3 lib(.so檔)的symbolic link 不正確,沒有連結到正確的函式庫文件(.so)
一般我們都是遇到了第三種情形,雖然安裝了指定的庫文件,但是沒有進行正確的連接。
對應第一二種情況,我們可以直接用apt-get來解決問題。
apt-get install libxxx-dev
第三種情形的話,我們先用locate和find來找到指定的lib文件,查看鏈接文件是否正確的指向了我們希望的lib,如果不是,用 ln -sf */libxxx.so.x */libxxx.so 指令修改它。
連接以后,輸入ldconfig來讓動態鏈接庫供系統共享。