2017-06-13 1079 views
1

我想交叉编译树莓派计算模块的最新Qt(版本5.9)。我很新,但发现这个指南非常有帮助:https://visualgdb.com/tutorials/raspberry/qt/embedded/qt配置与交叉编译问题:设备和xplatform

我按照说明,但是当涉及到配置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

在我而言,这将引发我不能指定xplatformdevice参数都错误。我是新来的,我不确定应该指定哪一个。

回答

1

当您配置选择mkspec你可以选择一台主机平台-platform,或者交叉编译,你可以用-xplatform选择目标平台。当交叉编译特定的支持设备时,您选择与-device的mkspec。您可以使用-device-option标志为特定设备提供选项。当使用-device标志时,您不使用-xplatform标志。

在Qt中,似乎有一个用于Raspberry Pi 2的设备mkspec。您可以从Qt源代码树中的qtbase模块中找到Qt mkspecs,例如, 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主机env中),它使用-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