【问题标题】:C++ Qt 5.10 Cross compiling for Raspberry PI 3 This application failed to start because it could not find or load the Qt platform plugin "xcb" in ""C++ Qt 5.10 Cross compile for Raspberry PI 3 此应用程序无法启动,因为它无法在“”中找到或加载 Qt 平台插件“xcb”
【发布时间】:2018-06-07 22:34:33
【问题描述】:

我尝试为我的 Rasperry pi 3 交叉编译 qt 5.10。我使用以下指南来完成任务: Step by step to compile

我已使用以下命令来执行此操作:

sudo ./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-
gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v -no-use-gold-linker

这样做没有问题。 现在我尝试运行示例 qopenglwidget 但我收到以下错误消息:

sudo ./qopenglwidget

此应用程序无法启动,因为它无法在“”中找到或加载 Qt >平台插件“xcb”。

可用的平台插件有:eglfs、linuxfb、minimal、minimalegl、offscreen、>vnc、xcb。 重新安装应用程序可能会解决此问题。

中止

我已经在应用程序上尝试了 ldd 并得到以下输出:

ldd qopenglwidget
    linux-vdso.so.1 (0x7e9a4000)
    /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f77000)
    libQt5Widgets.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5 (0x76a11000)
    libQt5Gui.so.5 => /usr/lib/arm-linux-gnueabihf/libQt5Gui.so.5 (0x765eb000)
    libQt5Core.so.5 => /usr/local/qt5pi2/lib/libQt5Core.so.5 (0x760b9000)
    libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x76094000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0x7606b000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0x75f23000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x75ea4000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0x75e77000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x75d38000)
    /lib/ld-linux-armhf.so.3 (0x76f8d000)
    libharfbuzz.so.0 => /usr/lib/arm-linux-gnueabihf/libharfbuzz.so.0 (0x75ca1000)
    libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1 (0x75c7a000)
    libpng16.so.16 => /usr/lib/arm-linux-gnueabihf/libpng16.so.16 (0x75c40000)
    libdouble-conversion.so.1 => /usr/lib/arm-linux-gnueabihf/libdouble-conversion.so.1 (0x75c1e000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x75c0b000)
    libgthread-2.0.so.0 => /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0x75bf9000)
    libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 (0x75af1000)
    libEGL.so => /opt/vc/lib/libEGL.so (0x75ab8000)
    libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x75a91000)
    libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x75a7b000)
    libvcos.so => /opt/vc/lib/libvcos.so (0x75a61000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0x75a4a000)
    libfreetype.so.6 => /usr/lib/arm-linux-gnueabihf/libfreetype.so.6 (0x759af000)
    libgraphite2.so.3 => /usr/lib/arm-linux-gnueabihf/libgraphite2.so.3 (0x7597c000)
    libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3 (0x75903000)

我尝试将 LDD_LIBRARY_PATH 设置为 /usr/local/qt5pi2/platforms 但它不起作用。

请有人知道我做错了什么?

添加 QT_QPA_PLATFORM_PLUGIN_PATH 后,我收到以下错误:

./qopenglwidget 此应用程序无法启动,因为它无法找到或加载 Qt >platform 插件“xcb” 在“/usr/local/qt5pi/plugins/platforms/”中。

可用的平台插件有:eglfs(来自 >/usr/local/qt5pi/plugins/platforms/)、linuxfb(来自 >/usr/local/qt5pi/plugins/platforms/)、minimal(来自 >/usr/local /qt5pi/plugins/platforms/), minimumegl (来自 >/usr/local/qt5pi/plugins/platforms/), offscreen (来自 >/usr/local/qt5pi/plugins/platforms/), vnc (来自 >/usr/ local/qt5pi/plugins/platforms/), xcb (来自 >/usr/local/qt5pi/plugins/platforms/), eglfs, linuxfb, minimum, minimumegl, >offscreen, vnc.

重新安装应用程序可能会解决此问题。 中止

在 p-a-o-l-o 的帮助下(非常感谢)我已经导出了

QT_QPA_PLATFORM_PLUGIN_PATH 

然后我做了以下事情:

export LD_LIBRARY_PATH=/usr/local/qt5pi/lib
sudo ldconfig

现在它对我有用。

我将尝试为树莓派交叉编译 qt 5.10

【问题讨论】:

    标签: c++ qt cross-platform raspbian


    【解决方案1】:

    我认为插件的路径是空的,尝试用

    设置它
    export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/platforms
    

    在启动您的应用程序之前(我提供的路径只是一个示例)。

    如果这不能解决问题,则无法加载 xcb 插件(可能是您的目标设备上的 x 服务器问题)。尝试在启动前加载导出 QT_QPA_PLATFORM 的不同插件,例如:

    export QT_QPA_PLATFORM=eglfs
    

    export QT_QPA_PLATFORM=minimalegl
    

    【讨论】:

    • 您好,感谢您的回答。我已经编辑了我的问题,因为在那之后我又遇到了另一个错误。
    • 有了这个我在同样的错误中运行。我在 CLI 模式下运行 Pi,所以不应启动 x-Server 还是?
    • 此应用程序无法启动,因为它无法在“/usr/local/qt5pi/plugins/platforms/”中找到或加载 Qt >platform 插件“XXXX”。 XXXX=minimalegl
    • 但是现在可以了...我使用了以下命令:export LD_LIBRARY_PATH=/usr/local/qt5pi/lib
    • 这是下一个选项 :)
    猜你喜欢
    • 2015-06-06
    • 2016-06-10
    • 2017-07-24
    • 2014-04-11
    • 2014-10-01
    • 2019-07-26
    • 1970-01-01
    • 2016-01-08
    • 2018-05-17
    相关资源
    最近更新 更多