ElevenJune
ElevenJune

Reputation: 457

What does "Could not find the Qt platform plugin "xcb" " means?

I'm programming a software in C++ with Qt5.15.2. I need to deploy it on a Raspberry Pi 4 and installed Qt Creator and Qt5.15.2 on the Raspberry (I know I can also do a cross-compile but I keep it for later). When I try to run the the software from QtCreator I get the error :

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.

I googled this error and found threads about how to solve it, especially running the software from the terminal with QT_DEBUG_PLUGINS=1

What I didn't find however is a clear explanation of why this is happening. My questions are the following :

I'm really confused about this, this is not clear for me. This is the output I have when running QT_DEBUG_PLUGINS=1before (which I don't understand) :

    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"

Thanks in advance

Upvotes: 2

Views: 2689

Answers (1)

Matthew K.
Matthew K.

Reputation: 81

It looks like you only have Wayland available for Qt to use. xcb is part of the X Windows System, see here.

Not a problem! According to the wiki page for QtWayland, you need to:

Regardless the only thing you need to do as an application developer to run your GUI application as a wayland client is tell the application to use the right platform plugin:
./application -platform wayland or: export QT_QPA_PLATFORM=wayland ./application

That environment variable should enable you to instruct Qt to use Wayland. The available plugins listed by that error message could also be passed to QT_QPA_PLATFORM.

Upvotes: 2

Related Questions