linux解決加載Qt xcb plugins失敗


1.問題現象

  運行可執行方式比如 ./setup

  有如下報錯:

    This application failed to start because it could not find or load the Qt platform "xcb" in "".

    Available platform plugins are: xcb.

    Reinstalling the application may fix this problem.

    已放棄(核心已轉儲)

2.定位錯誤

  •   打開qt插件debug開關 export QT_DEBUG_PLUGINS=1
  •   運行./setup
  •   發現加載xcb插件時,加載libQt5XcbQpa.so.5出錯,且其定位到的libQt5XcbQpa.so.5庫目錄為/user/lib目錄下
  •        此時懷疑通過加載xcb插件時,查找的libQt5XcbQpa.so.5目錄有問題
  •   通過ldd查看setup目錄下的libqxcb.so,發現其加載目錄為/user/lib
  •        與正常環境下的ldd libqxcb.so比較,發現正常環境下的libqxcb.so加載的libQt5XcbQpa.so.5在qt安裝目錄下(即~/Qt5.6/5.6/gcc_64/lib)
  •        此時確認了問題所在,我是新安裝的qt環境,但沒有將qt庫目錄添加到環境變量LD_LIBRARY_PATH,引起的加載libQt5XcbQpa.so.5目錄尋找從最低優先級地方找(第3部分討論linux下so動態庫搜索順序)
  •        修改:在~/.bashrc末尾添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/Qt5.6/5.6/gcc_64/lib  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM