首页 > 解决方案 > “找不到 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

然而,我没有找到清楚地解释为什么会发生这种情况。我的问题如下:

我真的很困惑,这对我来说不清楚。这是我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"

提前致谢

标签: c++qtraspberry-pi4

解决方案


看起来您只有 Wayland 可供 Qt 使用。 xcb是 X Windows 系统的一部分,请参见此处

不是问题!根据QtWayland 的 wiki 页面,您需要:

无论您作为应用程序开发人员将您的 GUI 应用程序作为 Wayland 客户端运行,唯一需要做的就是告诉应用程序使用正确的平台插件:
./application -platform wayland或者:export QT_QPA_PLATFORM=wayland ./application

该环境变量应该使您能够指示 Qt 使用 Wayland。该错误消息列出的可用插件也可以传递给QT_QPA_PLATFORM.


推荐阅读