qt安裝遇到的錯誤

來源:互聯網
上載者:User

/usr/bin/ld: cannot find -lXrender
collect2: ld returned 1 exit status
make[1]: *** [../../../../lib/libQtWebKit.so.4.7.4] Error 1
make[1]: Leaving directory `/root/test/qt/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebCore'

make: *** [sub-webkit-make_default-ordered] Error 2

使用make命令編譯Qt原碼時出現了 /usr/bin/ld: cannot find -lXrender 問題:

        /usr/bin/ld: cannot find -lXrender
        collect2: ld 返回 1
        make[1]: *** [../../../../lib/libQtWebKit.so.4.7.4] 錯誤 1
        make[1]:正在離開目錄 `/home/Qt/qt-everywhere-opensource-src-4.7.4/src/3rdparty/webkit/WebCore'
        make: *** [sub-webkit-make_default-ordered] 錯誤 2


其解決方案如下:

執行sudo apt-get install libXrender-dev命令,安裝相應的lib檔案。


所以最好在編譯Qt原碼前先執行以下命令:

        sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev

        sudo apt-get install libglui-dev

安裝相應的lib檔案,防止編譯出錯。


再上網搜尋一下,發現在Linux下編譯應用程式常常會出現如下錯誤:
/usr/bin/ld:cannot find -lxxx
意思是編譯過程找不到對應庫檔案。其中-lxxx表示連結庫檔案libxxx.so。


一般出現這種錯誤有以下幾種原因:
1.系統缺乏對應的庫檔案
2.庫檔案版本不對應
3.庫檔案連結錯誤
4.庫檔案路徑設定不正確


對於前2種情況,可以通過下載安裝lib來解決:
sudo apt-get install libxxx-dev(上面編譯Qt的情況大多是這樣)


而對於第3種情況,通過find或者locate命令定位到連結檔案,查看連結檔案是否正確的指向了lib檔案。如果不是,用 ln -sf */libxxx.so.x */libxxx.so 命令修改。


對於最後一種情況,可以到/etc/ld.so.conf.d目錄下,修改其中任意一份conf檔案(也可自建conf),將lib所在的目錄寫進去,然後在終端輸入ldconfig更新緩衝。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.