問題描述
安裝Qt5.15.0后,在運行測試用例時彈出錯誤:
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Aborted (core dumped)
根據問題描述,雖然能夠找到但是不能加載Qt平台插件“xcb”,雖然接下來又說重新安裝可能能夠解決,這個可能的話,還是盡量作為最下的選擇吧。
定位問題
修改配置文件~/.bashrc:
$ vim ~/.bashrc
在最末尾添加如下語句,會在qtcreator啟動時,列出詳細的錯誤提示。
export QT_DEBUG_PLUGINS=1
如下:
保存退出編輯,使配置文件生效:
$ source ~/.bashrc
啟動qtcreator會彈出如下詳細錯誤信息:
在打印的錯誤信息的最下面,找到了引發錯誤的真正原因:
也就是Qt動態鏈接庫的問題,當加載libqxcb.so庫的時候,還需要加載libxcb-xinerama庫。
切換到報錯libxcb.so所在目錄:
#替換為自己的報錯目錄
$ cd /home/brainiac/Qt/Tools/QtCreator/lib/Qt/plugins/platforms/
運行ldd libqxcb.so,查看關聯內容:
$ ldd libqxcb.so
發現不存在libxcb-xinerama.so.0庫。
解決方法
安裝libxcb-xinerama庫:
#如果還存在其他依賴庫沒有安裝,也一並安裝。
$ sudo apt-get install libxcb-xinerama0
安裝完成后,再次查看關聯內容,發現已經修復問題:
$ ldd libqxcb.so
再次運行qt程序,就可以正常運行了。
后記
又可以愉快的coding了。