[Qt platform plugin问题] Could not load the Qt platform plugin “xcb“
Qt platform plugin
是 Qt 应用程序启动时加载的插件。不同的平台有不同的插件。
常见的插件有:linuxfb
Wayland
xcb
简单来说就是启动一个GUI程序, 离不开这些插件.选择其中一个就好
出现这个问题要么就是没有插件,要么就是插件依赖的库没有。 要么就是插件选则的有问题 任何一个插件都是如此
这里以xcb插件为例.一步一步排查错误
1. 开启QT_DEBUG_PLUGINS宏
在终端中输入
export QT_DEBUG_PLUGINS=1
- 打开插件的调试信息.然后执行你的程序,会输出详细的错误信息.进一步排查
- 这个环境变量是一次性的,退出终端后就失效了,不会影响其他的.
2. 错误场景
2.1 插件选择错误
- 这种就是插件选择错误的 在远程会话或图形界面设置不足的情况下,无法正确连接到显示服务器
- 我这里的场景是通过ssh连接开发板 图像无法回传到本机 板子已经连接显示器了
- 解决这问题很简单 换个插件就行了
- 更换完插件还有问题继续看2.2 小节
2.1.1 更换插件
更换插件有两种方式:
- 1.通过命令含参数
- 这种方式适合调试排错
[可执行程序] -platform [插件名]
比如我这里使用eglfs替换xcb插件
./appRPIUI -platform eglfs
- 2.通过环境变量
- 这种方式适合永久生效
export QT_QPA_PLATFORM=eglfs
将这个环境变量添加到~/.bashrc
文件中
然后执行source ~/.bashrc
刷新环境变量
这样在后续启动程序时就不用添加参数了
2.2 插件缺少库
同样的 打开QT_DEBUG_PLUGINS宏
这种就是插件依赖的库没有安装.
安装对应的依赖即可.
sudo apt-get install libinput10
缺什么安装什么,这个找GPT就可能缺的可能很多
2.3 插件没安装
这个插件在Qt的安装路径plugins/platforms
这个路径下.里面有需要的各种插件.
如果这个没有重新安装Qt即可,这个比较好排查.如果有插件一定是上面两种情况引起的