博野網(wǎng)站建設(shè)江西省水文監(jiān)測(cè)中心
Qt platform plugin
是 Qt 應(yīng)用程序啟動(dòng)時(shí)加載的插件。不同的平臺(tái)有不同的插件。
常見(jiàn)的插件有:linuxfb
Wayland
xcb
簡(jiǎn)單來(lái)說(shuō)就是啟動(dòng)一個(gè)GUI程序, 離不開(kāi)這些插件.選擇其中一個(gè)就好
出現(xiàn)這個(gè)問(wèn)題要么就是沒(méi)有插件,要么就是插件依賴的庫(kù)沒(méi)有。 要么就是插件選則的有問(wèn)題 任何一個(gè)插件都是如此
這里以xcb插件為例.一步一步排查錯(cuò)誤
1. 開(kāi)啟QT_DEBUG_PLUGINS宏
在終端中輸入
export QT_DEBUG_PLUGINS=1
- 打開(kāi)插件的調(diào)試信息.然后執(zhí)行你的程序,會(huì)輸出詳細(xì)的錯(cuò)誤信息.進(jìn)一步排查
- 這個(gè)環(huán)境變量是一次性的,退出終端后就失效了,不會(huì)影響其他的.
2. 錯(cuò)誤場(chǎng)景
2.1 插件選擇錯(cuò)誤
- 這種就是插件選擇錯(cuò)誤的 在遠(yuǎn)程會(huì)話或圖形界面設(shè)置不足的情況下,無(wú)法正確連接到顯示服務(wù)器
- 我這里的場(chǎng)景是通過(guò)ssh連接開(kāi)發(fā)板 圖像無(wú)法回傳到本機(jī) 板子已經(jīng)連接顯示器了
- 解決這問(wèn)題很簡(jiǎn)單 換個(gè)插件就行了
- 更換完插件還有問(wèn)題繼續(xù)看2.2 小節(jié)
2.1.1 更換插件
更換插件有兩種方式:
- 1.通過(guò)命令含參數(shù)
- 這種方式適合調(diào)試排錯(cuò)
[可執(zhí)行程序] -platform [插件名]
比如我這里使用eglfs替換xcb插件
./appRPIUI -platform eglfs
- 2.通過(guò)環(huán)境變量
- 這種方式適合永久生效
export QT_QPA_PLATFORM=eglfs
將這個(gè)環(huán)境變量添加到~/.bashrc
文件中
然后執(zhí)行source ~/.bashrc
刷新環(huán)境變量
這樣在后續(xù)啟動(dòng)程序時(shí)就不用添加參數(shù)了
2.2 插件缺少庫(kù)
同樣的 打開(kāi)QT_DEBUG_PLUGINS宏
這種就是插件依賴的庫(kù)沒(méi)有安裝.
安裝對(duì)應(yīng)的依賴即可.
sudo apt-get install libinput10
缺什么安裝什么,這個(gè)找GPT就可能缺的可能很多
2.3 插件沒(méi)安裝
這個(gè)插件在Qt的安裝路徑plugins/platforms
這個(gè)路徑下.里面有需要的各種插件.
如果這個(gè)沒(méi)有重新安裝Qt即可,這個(gè)比較好排查.如果有插件一定是上面兩種情況引起的