c++ - “找不到 Qt 平台插件“xcb””是什么意思?
问题描述
我正在使用 Qt5.15.2 用 C++ 编写软件。我需要将它部署在 Raspberry Pi 4 上,并在 Raspberry 上安装 Qt Creator 和 Qt5.15.2(我知道我也可以进行交叉编译,但我会保留它以备后用)。当我尝试从 QtCreator 运行软件时,出现错误:
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
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, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
我用谷歌搜索了这个错误并找到了关于如何解决它的线程,特别是从终端运行软件QT_DEBUG_PLUGINS=1
然而,我没有找到清楚地解释为什么会发生这种情况。我的问题如下:
- 为什么我会收到错误消息?
- 什么是 xcb 插件?
- 安装 Qt 时我做错了吗?如果是这样,我做错了什么?
- 为什么它与调用一起工作
QT_DEBUG_PLUGINS=1;
? - 如果我像这样部署我的软件并使用脚本调用
QT_DEBUG_PLUGINS=1; ./mySoftwareExec
它是一个好的还是一个糟糕的解决方案?
我真的很困惑,这对我来说不清楚。这是我QT_DEBUG_PLUGINS=1
之前运行时的输出(我不明白):
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqeglfs.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqeglfs.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"eglfs"
]
},
"archreq": 0,
"className": "QEglFSIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqlinuxfb.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqlinuxfb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"linuxfb"
]
},
"archreq": 0,
"className": "QLinuxFbIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("linuxfb")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqminimal.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqminimal.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimal"
]
},
"archreq": 0,
"className": "QMinimalIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqminimalegl.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqminimalegl.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"minimalegl"
]
},
"archreq": 0,
"className": "QMinimalEglIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqoffscreen.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqoffscreen.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"offscreen"
]
},
"archreq": 0,
"className": "QOffscreenIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqvnc.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqvnc.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"vnc"
]
},
"archreq": 0,
"className": "QVncIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqwebgl.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqwebgl.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"webgl"
]
},
"archreq": 0,
"className": "QWebGLIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("webgl")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforms/libqxcb.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforms/libqxcb.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
"MetaData": {
"Keys": [
"xcb"
]
},
"archreq": 0,
"className": "QXcbIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/platforms" ...
loaded library "/usr/lib/qt5.15.2/plugins/platforms/libqxcb.so"
loaded library "Xcursor"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/platformthemes" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platformthemes/libqxdgdesktopportal.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platformthemes/libqxdgdesktopportal.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.QPlatformThemeFactoryInterface.5.1",
"MetaData": {
"Keys": [
"xdgdesktopportal",
"flatpak",
"snap"
]
},
"archreq": 0,
"className": "QXdgDesktopPortalThemePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("xdgdesktopportal", "flatpak", "snap")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/platformthemes" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/platforminputcontexts" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so, metadata=
{
"IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
"MetaData": {
"Keys": [
"compose",
"xim"
]
},
"archreq": 0,
"className": "QComposePlatformInputContextPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("compose", "xim")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforminputcontexts/libibusplatforminputcontextplugin.so, metadata=
{
"IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
"MetaData": {
"Keys": [
"ibus"
]
},
"archreq": 0,
"className": "QIbusPlatformInputContextPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("ibus")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/platforminputcontexts/libqtvirtualkeyboardplugin.so, metadata=
{
"IID": "org.qt-project.Qt.QPlatformInputContextFactoryInterface.5.1",
"MetaData": {
"Keys": [
"qtvirtualkeyboard"
]
},
"archreq": 0,
"className": "QVirtualKeyboardPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("qtvirtualkeyboard")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/platforminputcontexts" ...
loaded library "/usr/lib/qt5.15.2/plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/styles" ...
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/styles" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/imageformats" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqgif.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqgif.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"gif"
],
"MimeTypes": [
"image/gif"
]
},
"archreq": 0,
"className": "QGifPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("gif")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqicns.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqicns.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"icns"
],
"MimeTypes": [
"image/x-icns"
]
},
"archreq": 0,
"className": "QICNSPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("icns")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqico.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqico.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"ico",
"cur"
],
"MimeTypes": [
"image/vnd.microsoft.icon",
"image/vnd.microsoft.icon"
]
},
"archreq": 0,
"className": "QICOPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("ico", "cur")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqjpeg.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqjpeg.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"jpg",
"jpeg"
],
"MimeTypes": [
"image/jpeg",
"image/jpeg"
]
},
"archreq": 0,
"className": "QJpegPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("jpg", "jpeg")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqpdf.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqpdf.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"pdf"
],
"MimeTypes": [
"application/pdf"
]
},
"archreq": 0,
"className": "QPdfPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("pdf")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqsvg.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqsvg.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"svg",
"svgz"
],
"MimeTypes": [
"image/svg+xml",
"image/svg+xml-compressed"
]
},
"archreq": 0,
"className": "QSvgPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("svg", "svgz")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqtga.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqtga.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"tga"
],
"MimeTypes": [
"image/x-tga"
]
},
"archreq": 0,
"className": "QTgaPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("tga")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqtiff.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqtiff.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"tiff",
"tif"
],
"MimeTypes": [
"image/tiff",
"image/tiff"
]
},
"archreq": 0,
"className": "QTiffPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("tiff", "tif")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqwbmp.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqwbmp.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"wbmp"
],
"MimeTypes": [
"image/vnd.wap.wbmp"
]
},
"archreq": 0,
"className": "QWbmpPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("wbmp")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/imageformats/libqwebp.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/imageformats/libqwebp.so, metadata=
{
"IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
"MetaData": {
"Keys": [
"webp"
],
"MimeTypes": [
"image/webp"
]
},
"archreq": 0,
"className": "QWebpPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("webp")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/imageformats" ...
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqgif.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqicns.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqico.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqjpeg.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqpdf.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqsvg.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqtga.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqtiff.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqwbmp.so"
loaded library "/usr/lib/qt5.15.2/plugins/imageformats/libqwebp.so"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/iconengines" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/iconengines/libqsvgicon.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/iconengines/libqsvgicon.so, metadata=
{
"IID": "org.qt-project.Qt.QIconEngineFactoryInterface",
"MetaData": {
"Keys": [
"svg",
"svgz",
"svg.gz"
]
},
"archreq": 0,
"className": "QSvgIconPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("svg", "svgz", "svg.gz")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/iconengines" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/accessible" ...
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/accessible" ...
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/xcbglintegrations" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/xcbglintegrations/libqxcb-glx-integration.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/xcbglintegrations/libqxcb-glx-integration.so, metadata=
{
"IID": "org.qt-project.Qt.QPA.Xcb.QXcbGlIntegrationFactoryInterface.5.5",
"MetaData": {
"Keys": [
"xcb_glx"
]
},
"archreq": 0,
"className": "QXcbGlxIntegrationPlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("xcb_glx")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/xcbglintegrations" ...
loaded library "/usr/lib/qt5.15.2/plugins/xcbglintegrations/libqxcb-glx-integration.so"
QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/qt5.15.2/plugins/bearer" ...
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/bearer/libqconnmanbearer.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/bearer/libqconnmanbearer.so, metadata=
{
"IID": "org.qt-project.Qt.QBearerEngineFactoryInterface",
"MetaData": {
"Keys": [
"connman"
]
},
"archreq": 0,
"className": "QConnmanEnginePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("connman")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/bearer/libqgenericbearer.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/bearer/libqgenericbearer.so, metadata=
{
"IID": "org.qt-project.Qt.QBearerEngineFactoryInterface",
"MetaData": {
"Keys": [
"generic"
]
},
"archreq": 0,
"className": "QGenericEnginePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("generic")
QFactoryLoader::QFactoryLoader() looking at "/usr/lib/qt5.15.2/plugins/bearer/libqnmbearer.so"
Found metadata in lib /usr/lib/qt5.15.2/plugins/bearer/libqnmbearer.so, metadata=
{
"IID": "org.qt-project.Qt.QBearerEngineFactoryInterface",
"MetaData": {
"Keys": [
"networkmanager"
]
},
"archreq": 0,
"className": "QNetworkManagerEnginePlugin",
"debug": false,
"version": 331520
}
Got keys from plugin meta data ("networkmanager")
QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/eva/eva-core/bin/unix/debug/bearer" ...
loaded library "/usr/lib/qt5.15.2/plugins/bearer/libqconnmanbearer.so"
loaded library "/usr/lib/qt5.15.2/plugins/bearer/libqgenericbearer.so"
loaded library "/usr/lib/qt5.15.2/plugins/bearer/libqnmbearer.so"
提前致谢
解决方案
看起来您只有 Wayland 可供 Qt 使用。
xcb
是 X Windows 系统的一部分,请参见此处。
不是问题!根据QtWayland 的 wiki 页面,您需要:
无论您作为应用程序开发人员将您的 GUI 应用程序作为 Wayland 客户端运行,唯一需要做的就是告诉应用程序使用正确的平台插件:
./application -platform wayland
或者:export QT_QPA_PLATFORM=wayland ./application
该环境变量应该使您能够指示 Qt 使用 Wayland。该错误消息列出的可用插件也可以传递给QT_QPA_PLATFORM
.
推荐阅读
- docker - 安装了 repo 的 docker-ce 未显示在 `yum list available` 中
- c# - 新手:创建 enum.FirstOrDefault(),得到“无法隐式转换类型”
- python-3.x - 我是 python 新手,我正在尝试构建一个简单的井字游戏。当我从用户那里获取输入时,它会进入无限循环
- javascript - 使用 sequelize 从两个模型表中获取数据
- c++ - 如何从键盘调用枚举器?
- maven - spring boot Maven打包时如何修改配置文件名,如config.xml xml。重新配置。XML
- python - Easy Leetcode:BST 深度优先搜索存在堆栈溢出错误
- node.js - 在 Linux 终端中看不到 console.log()
- html - 右侧打开的 CSS 嵌套下拉菜单
- typescript - 如何在函数上使用泛型类型,该类型必须满足某些条件?