2017-06-13 231 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