我正在尝试为raspberry pi计算模块交叉编译最新的Qt(版本5.9)。我对此很新,但发现本指南非常有用:https://visualgdb.com/tutorials/raspberry/qt/embedded/
我按照说明进行了操作,但是在配置qt时,我按照指南中的建议使用了以下命令(我已经用5.9替换了5.5版本):
../qt-everywhere-opensource-src-5.9.0/configure -platform win32-g++ -xplatform linux-arm-gnueabi-g++ -release -opengl es2 -device linux-rasp-pi2-g++ -sysroot C:/SysGCC/Raspberry/arm-linux-gnueabihf/sysroot -prefix /usr/local/qt5
在我的情况下,这会引发错误,我无法同时指定xplatform
和device
参数。我是新手,我不确定应该指定哪一个!
答案 0 :(得分:3)
当您为配置选择 mkspec 时,您可以选择-platform
的主机平台,或者在交叉编译时,您可以选择-xplatform
的目标平台。对特定支持的设备进行交叉编译时,请选择带有-device
的mkspec。您可以使用-device-option
标志为特定设备提供选项。使用-device
标志时,不要使用-xplatform
标志。
在Qt中,似乎有一个用于Raspberry Pi 2的设备mkspec。你可以在Qt源代码树中的qtbase模块中找到Qt mkspec,例如Raspberry Pi 2 mkspec:qt-everywhere-opensource-src-5.9.0/qtbase/mkspecs/devices/linux-rasp-pi2-g++
。
Qt wiki中有Raspberry Pi Beginners Guide可能会有所帮助。它说你最初应该构建qtbase然后逐个编译其他模块。在wiki中有一个示例配置命令,用于Raspberry Pi 2(在Linux主机环境中),它使用-device
和-device-option
标志:
./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi
make -j 4
sudo make install