說起來我都不信,再linux下安裝個QT 這麼難嗎?重裝了幾次系統,醉了,下面說一下我遇到的問題:
- round1:
安裝完成後,執行qtcreator 提示:
Linux qt "qt.qpa.plugin: Could not load the Qt platform plugin "xcb" "
搜素一通,配置輸出錯誤日誌詳細信息
sudo gedit ~/.bashrc文件中添加如下語句:
export QT_DEBUG_PLUGINS=1
export LD_LIBRARY_PATH=/opt/Qt5.13.1/5.13.1/gcc_64/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/Qt5.13.1/Tools/QtCreator/lib:$LD_LIBRARY_PATH
後兩句是從把鏈接庫路徑加到搜索路徑中,不知道有沒有生效。
此處重點強調其實第一句話,加上此配置項後,QtCreator就會輸出大量信息,這樣我們,纔能有的放矢,一步步解決問題/
使改動生效
sudo source ~/.bashrc
- round2:
再次從命令行中執行qtcreator程序,此時輸出一大堆日誌信息,跳到最後發現提示:
Cannot load library /opt/Qt5.13.1/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: 無法打開共享對象文件: 沒有那個文件或目錄)
QLibraryPrivate::loadPlugin failed on "/opt/Qt5.13.1/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so" : "Cannot load library /opt/Qt5.13.1/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so: (libxkbcommon-x11.so.0: 無法打開共享對象文件: 沒有那個文件或目錄)"
很明顯動態庫加載失敗,首先查看是否存在此文件,存在,然後查看其依賴庫是否都能夠成功找到:
ldd /opt/Qt5.13.1/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so
此時發現有與libxkbcommon相關的庫找不到,ok百度一下,需要安裝此庫,用yum安裝:
yum -y install libxkbcommon-x11-devel
- round 3 缺少dbus
繼續執行還是有錯誤,跳到最後一行 還是有錯誤,提示dbus 出錯
/opt/Qt5.13.1/Tools/QtCreator/bin/qtcreator: relocation error: /opt/Qt5.13.1/Tools/QtCreator/lib/Qt/plugins/platforms/../../lib/libQt5DBus.so.5: symbol dbus_message_set_allow_interactive_authorization, version LIBDBUS_1_3 not defined in file libdbus-1.so.3 with link time reference
ok繼續 安裝dbus庫
yum -y install dbus-devel
round4
繼續執行,此時提示如下錯誤
opt/Qt5.13.1/Tools/QtCreator/bin/qtcreator: symbol lookup error: /opt/Qt5.13.1/Tools/QtCreator/lib/Qt/plugins/platforms/../../lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format
百度一下,需要安裝freetype-devel,歐克
yum -y install freetype-devel
總而言之,一切從配置此環境變量開始export QT_DEBUG_PLUGINS=1,大家遇到的問題可能與我不同,但是有了輸出信息就可以一步步的解決了。