首頁 > 軟體

樹莓派2B、樹莓派3的Qt交叉編譯環境搭建

2020-06-16 17:37:25

實驗室專案需要用Qt在樹莓派上開發一個使用者互動介面。雖然樹莓派的硬體設定隨版本更新不斷提升,但是還是無法滿足直接在樹莓派上進行Qt開發,所以首先要做的事情就是搭建交叉編譯環境。

下面開始搭建步驟:

實驗平台:樹莓派2B(後來在樹莓派3上進行了實驗,除了raspbian映象檔案不同以外,其他檔案不變,驗證了該方案可行。)

1.準備檔案(下載方式後加)

2015-05-05-raspbian-wheezy.zip

cross-compile-tools-master.zip

gcc-4.7-linaro-rpi-gnueabihf.tbz

qt-everywhere-opensource-src-5.4.1.tar

qt-opensource-linux-x86-5.4.1.run

這裡如果不是有對更新的版本需求,還是建議嚴格按照上述給出的版本下載所需檔案,否則可能會出問題。

百度網路硬碟下載:http://pan.baidu.com/s/1gflswjp  提取密碼:1em5

--------------------------------------分割線 --------------------------------------

樹莓派入門教學圖解PDF版  http://www.linuxidc.com/Linux/2016-03/129109.htm

如何在樹莓派 2 執行 Ubuntu Snappy Core  http://www.linuxidc.com/Linux/2015-08/122438.htm

在(Raspberry Pi)樹莓派上安裝NodeJS  http://www.linuxidc.com/Linux/2015-01/111714.htm

Raspberry Pi 樹莓派上安裝Weston http://www.linuxidc.com/Linux/2013-06/86685.htm

用於Raspberry Pi 的Linux 作業系統已經可用 http://www.linuxidc.com/Linux/2012-03/56058.htm

Raspberry Pi(樹莓派)試用小記 http://www.linuxidc.com/Linux/2013-10/91008.htm

Raspberry Pi(樹莓派)的安裝、設定IP及軟體源等入門 http://www.linuxidc.com/Linux/2013-10/91009.htm

--------------------------------------分割線 --------------------------------------

2.搭建環境

VMware Workstation 12 Pro下建立的Ubuntu虛擬機器,版本為32位元的12.04LTS。(試過64位元的系統安裝32位元庫支援的方法,但最終沒有跑通,所以建議使用32位元的Ubuntu)

 

 

3.在Ubuntu系統的主資料夾下新建資料夾命名opt,將準備好的檔案放入opt資料夾並解壓。

4.掛載樹莓派映象

$sudo mkdir /mnt/rasp-pi-rootfs

$sudo mount -o loop,offset=62914560 2015-05-05-raspbian-wheezy.img /mnt/rasp-pi-rootfs

注意:

(1)loop,offset 之間,不能出現空格。

(2)offset該等於多少?可以執行以下命令檢視

$sudo fdisk -l 2015-05-05-raspbian-wheezy.img

執行結果:

Device Boot      Start      End        Blocks    Id 

System

2015-05-05-raspbian-wheezy.img1            8192      122879    57344    c 

W95 FAT32 (LBA)

2015-05-05-raspbian-wheezy.img2            122880    6399999    3138560  83  Linux

 

offset=(512* 122880) ,這樣就不會出錯了。

5.編譯qtbase

$sudo apt-get install g++

$cd ~/opt/cross-compile-tools

$sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc

$cd ~/opt/qt-everywhere-opensource-src-5.4.1/qtbase

$./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 -release -reduce-exports -make libs -no-pch  -make tools -prefix /usr/local/qt5pi -hostprefix /usr/local/qt5pi

(執行時間較長)執行至這一步的執行結果:

$make -j 4

$sudo make install

$for MODULE in qtimageformats qtsvg qtscript qtxmlpatterns qtdeclarative qtsensors qtgraphicaleffects qtlocation qtserialport qttools qtquick1 qtquickcontrols; do  cd $MODULE;  /usr/local/qt5pi/bin/qmake .;  make -j4;  sudo make install;  cd ..; done

(以上三個命令的執行時間較長,請耐心等待。執行結束後截圖)

6.Qt交叉編譯成功,燒寫新的樹莓派映象

首先將樹莓派的TF卡通過讀卡器插入電腦

$cd ~/opt/

$sync

$sudo umount /mnt/rasp-pi-rootfs

可以用$sudo fdisk –l命令檢視TF卡在Ubuntu系統下掛載情況

博主使用的是16G的TF卡,可以看到的掛載地址為/dev/sdb。所以燒寫命令如下:

$sudo dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/sdb

執行燒寫命令以後,終端視窗是沒有詳細顯示燒寫過程的,所以只要慢慢等待就可以了。

燒寫完成後會有相關資訊顯示:

注意:此時再把剛才解除安裝的樹莓派映象再次掛載到原地址(因為後面Qt Creator的交叉編譯需要這個映象裡的檔案作為庫。否則會在編譯的時候出現“Qt沒有被正確安裝,請執行install這樣的錯誤”),掛載命令和之前一樣

$sudo mount -o loop,offset=62914560 2015-05-05-raspbian-wheezy.img /mnt/rasp-pi-rootfs

最後把燒寫好的TF卡插入樹莓派並開啟樹莓派

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2016-07/133462p2.htm


IT145.com E-mail:sddin#qq.com