我试图为我的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>平台插件“xcb” 在“/ usr / local / qt5pi / plugins / platforms /".
中可用的平台插件有:eglfs(来自> / usr / local / qt5pi / plugins / platforms /),linuxfb(来自> / usr / local / qt5pi / plugins / platforms /),minimal(来自> / usr / local / qt5pi / plugins / platforms /),minimalegl(来自> / 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,minimal,minimalegl,> 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 for raspberry pi,重要的是从一个空白系统(Raspbian拉伸)开始,并且只做上面指南中的内容。
答案 0 :(得分:0)
我认为该插件的路径是空的,请尝试使用
进行设置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