實驗室項目需要用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版
如何在樹莓派 2 運行 Ubuntu Snappy Core
在(Raspberry Pi)樹莓派上安裝NodeJS
Raspberry Pi 樹莓派上安裝Weston
用於Raspberry Pi 的Linux 操作系統已經可用
Raspberry Pi(樹莓派)試用小記
Raspberry Pi(樹莓派)的安裝、配置IP及軟件源等入門
--------------------------------------分割線 --------------------------------------
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://xxxxxx/Linuxjc/1145140.html TechArticle