现象:运行Qt5的交互应用无法启动,报类似以下内容,其中的xcb可能是其他内容
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "XXXXXX/qt5/plugins" even though it was found.
This application failed to start because no Qt platform could be initialized. Reinstalling the application may fix this problem.
Avalilable platform plugins are:eglfs,linuxfb,minimal
问题原因:因为缺少某些xcb插件依赖的动态库导致
解决方案:可以设置 setenv QT_DEBUG_PLUGINS 1
再执行该交互应用,终端窗口上会输出许多加载插件时的调试信息,可以清楚的看到系统尝试加载了哪些插件,哪些是成功的,哪些没有成功,原因是什么都写的比较清楚。如下图所示:
无法加载的原因基本有3种 :
1. 插件库没有放在正确的目录下;
2. 插件库运行需要其他库的支持,而这些其他库有问题;
3. 主程序编译的环境和插件编译的环境不兼容。
问题解决后需要unsetenv QT_DEBUG_PLUGINS环境变量