Cannot find XCB location
-
I have cross compiled and deployed Qt 5.11.1 to Raspberry PI 3 using this tutorial: https://wiki.qt.io/RaspberryPi2EGLFS
So far everything worked, until I got stuck at point 15:
[on RPi] Run example, that we've built before. At this point it should just work at fullscreen with 60 FPS and mouse, keyboard, and possibly touch support.
My problem is the following:
pi@raspberrypi:~ $ ./qopenglwidget This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb. Reinstalling the application may fix this problem. Przerwane
It seems like Rpi doesnt have proper XCB directory. On the other hand it lists available plugins, so the path should be fine?
ldd returns the following:
pi@raspberrypi:~ $ ldd qopenglwidget linux-vdso.so.1 (0x7ec7f000) /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f58000) libQt5Widgets.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5 (0x769f2000) libQt5Gui.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5 (0x765cc000) libQt5Core.so.5 => /usr/local/qt5pi/lib/libQt5Core.so.5 (0x7608e000) libbrcmGLESv2.so => /opt/vc/lib/libbrcmGLESv2.so (0x76069000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x76040000) libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x75ef8000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x75e79000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75e4c000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75d0d000) /lib/ld-linux-armhf.so.3 (0x76f6e000) libharfbuzz.so.0 => /usr/lib/arm-linux-gnueabihf/libharfbuzz.so.0 (0x75c76000) libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x75c4f000) libpng16.so.16 => /usr/lib/arm-linux-gnueabihf/libpng16.so.16 (0x75c15000) libdouble-conversion.so.1 => /usr/lib/arm-linux-gnueabihf/libdouble-conversion.so.1 (0x75bf3000) libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75be0000) libbrcmEGL.so => /opt/vc/lib/libbrcmEGL.so (0x75ba7000) libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x75b80000) libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x75b6a000) libvcos.so => /opt/vc/lib/libvcos.so (0x75b50000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x75b39000) libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75a31000) libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x75996000) libgraphite2.so.3 => /usr/lib/arm-linux-gnueabihf/libgraphite2.so.3 (0x75963000) libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x758ea000)
It looks ok to me.
I would appreciate all help regarding this problem.
-
Hi,
Did you check that you have deployed all the required plugins and their dependencies ?
You should run
ldd
on your plugin to see if you are missing something.You can also set the `QT_DEBUG_PLUGINS" environment variable to 1 in order to have a more detailed outlook at what is happening.
-
Hi,
Did you check that you have deployed all the required plugins and their dependencies ?
You should run
ldd
on your plugin to see if you are missing something.You can also set the `QT_DEBUG_PLUGINS" environment variable to 1 in order to have a more detailed outlook at what is happening.
@SGaist thanks for answer. I have set the variable and this is the result:
pi@raspberrypi:~ $ echo $QT_DEBUG_PLUGINS 1 pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ pi@raspberrypi:~ $ ./qopenglwidget QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/qt5pi/plugins/platforms" ... QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqeglfs.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqeglfs.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "eglfs" ] }, "className": "QEglFSIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("eglfs") QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqlinuxfb.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqlinuxfb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "linuxfb" ] }, "className": "QLinuxFbIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("linuxfb") QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqminimal.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqminimal.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "minimal" ] }, "className": "QMinimalIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("minimal") QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqminimalegl.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqminimalegl.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "minimalegl" ] }, "className": "QMinimalEglIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("minimalegl") QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqoffscreen.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqoffscreen.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "offscreen" ] }, "className": "QOffscreenIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("offscreen") QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqvnc.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqvnc.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "vnc" ] }, "className": "QVncIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("vnc") QFactoryLoader::QFactoryLoader() looking at "/usr/local/qt5pi/plugins/platforms/libqxcb.so" Found metadata in lib /usr/local/qt5pi/plugins/platforms/libqxcb.so, metadata= { "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3", "MetaData": { "Keys": [ "xcb" ] }, "className": "QXcbIntegrationPlugin", "debug": false, "version": 330241 } Got keys from plugin meta data ("xcb") QFactoryLoader::QFactoryLoader() checking directory path "/home/pi/platforms" ... Cannot load library /usr/local/qt5pi/plugins/platforms/libqxcb.so: (/usr/local/qt5pi/plugins/platforms/../../lib/libQt5XcbQpa.so.5: symbol _ZTI18QPlatformClipboard, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference) QLibraryPrivate::loadPlugin failed on "/usr/local/qt5pi/plugins/platforms/libqxcb.so" : "Cannot load library /usr/local/qt5pi/plugins/platforms/libqxcb.so: (/usr/local/qt5pi/plugins/platforms/../../lib/libQt5XcbQpa.so.5: symbol _ZTI18QPlatformClipboard, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)" This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb. Reinstalling the application may fix this problem. Przerwane
And here is the ldd on the lib:
pi@raspberrypi:/usr/local/qt5pi/plugins/platforms $ ldd libqxcb.so linux-vdso.so.1 (0x7ef21000) /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76ed9000) libQt5XcbQpa.so.5 => /usr/local/qt5pi/plugins/platforms/./../../lib/libQt5XcbQpa.so.5 (0x76d49000) libQt5DBus.so.5 => /usr/local/qt5pi/plugins/platforms/./../../lib/libQt5DBus.so.5 (0x76cc5000) libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x76c84000) libpng16.so.16 => /usr/lib/arm-linux-gnueabihf/libpng16.so.16 (0x76c4a000) libQt5Gui.so.5 => /usr/local/qt5pi/plugins/platforms/./../../lib/libQt5Gui.so.5 (0x76782000) libQt5Core.so.5 => /usr/local/qt5pi/plugins/platforms/./../../lib/libQt5Core.so.5 (0x76244000) libbrcmGLESv2.so => /opt/vc/lib/libbrcmGLESv2.so (0x7621f000) libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x761f6000) libX11.so.6 => /usr/lib/arm-linux-gnueabihf/libX11.so.6 (0x760d3000) libX11-xcb.so.1 => /usr/lib/arm-linux-gnueabihf/libX11-xcb.so.1 (0x760c1000) libXi.so.6 => /usr/lib/arm-linux-gnueabihf/libXi.so.6 (0x760a1000) libxcb-xkb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb-xkb.so.1 (0x7607c000) libxcb-render-util.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-render-util.so.0 (0x76071000) libxcb-render.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-render.so.0 (0x76056000) libxcb.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb.so.1 (0x76027000) libxcb-shm.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-shm.so.0 (0x76014000) libxcb-sync.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb-sync.so.1 (0x75ffe000) libxcb-xfixes.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-xfixes.so.0 (0x75fe7000) libxcb-xinerama.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-xinerama.so.0 (0x75fd4000) libxcb-randr.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-randr.so.0 (0x75fb7000) libxcb-image.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-image.so.0 (0x75fa3000) libxcb-keysyms.so.1 => /usr/lib/arm-linux-gnueabihf/libxcb-keysyms.so.1 (0x75f8e000) libxcb-icccm.so.4 => /usr/lib/arm-linux-gnueabihf/libxcb-icccm.so.4 (0x75f82000) libxcb-shape.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-shape.so.0 (0x75f6f000) libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75f5c000) libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x75e14000) libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x75d95000) libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75d68000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75c29000) /lib/ld-linux-armhf.so.3 (0x76eef000) libdouble-conversion.so.1 => /usr/lib/arm-linux-gnueabihf/libdouble-conversion.so.1 (0x75c07000) libbrcmEGL.so => /opt/vc/lib/libbrcmEGL.so (0x75bce000) libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x75ba5000) libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x75b8f000) libvcos.so => /opt/vc/lib/libvcos.so (0x75b75000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x75b5e000) libXext.so.6 => /usr/lib/arm-linux-gnueabihf/libXext.so.6 (0x75b3f000) libXau.so.6 => /usr/lib/arm-linux-gnueabihf/libXau.so.6 (0x75b34000) libXdmcp.so.6 => /usr/lib/arm-linux-gnueabihf/libXdmcp.so.6 (0x75b1f000) libxcb-util.so.0 => /usr/lib/arm-linux-gnueabihf/libxcb-util.so.0 (0x75b0a000) libbsd.so.0 => /lib/arm-linux-gnueabihf/libbsd.so.0 (0x75ae1000)
I think nothing is missing. What do you think?
-
Hello,
I just found the answer by applying this: https://stackoverflow.com/questions/33189348/compiling-qt-base-error-libqt5core-so-5-no-version-information-available#33209037The application now opens with eglfs but not with xcb.
-
@Bremenpl said in Cannot find XCB location:
symbol _ZTI18QPlatformClipboard, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)
Are you sure you deployed the correct version of the libraries on your board ?
-
@Bremenpl said in Cannot find XCB location:
symbol _ZTI18QPlatformClipboard, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)
Are you sure you deployed the correct version of the libraries on your board ?
@SGaist Well I followed the guide, I dont think it allows me to deploy a bad vesrsion. I pulled the 5.10 qt version, switched to tag 5.10.1 and branched to 5.10.1. But now I am cleaning this and going for 5.11.1 like before (I went back from 5.11.1 to 5.10.1 because I thought this could be the problem).