這篇文章主要介紹了樹(shù)莓派如何實(shí)現(xiàn)Qt5交叉編譯移植,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括定西網(wǎng)站建設(shè)、定西網(wǎng)站制作、定西網(wǎng)頁(yè)制作以及定西網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,定西網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到定西省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
Raspberry Pi (BCM2835): Device Information
Architecture | ARMv6 | CPU | ARM11 |
RAM | 256MB OR 512MB since October 2012 (shared with GPU) |
GPU | VideoCore IV |
OpenGL | OpenGL ES 2.0 |
Multimedia | OpenMax IL 1.1.2 |
Qt 5.0 (eglfs/QPA) | Supported, with OpenGL ES 2.0 |
Qt 5 port functional state (against Raspbian Wheezy (primary reference platform))
Feature | State | Additional info | Hardware accelerated cursor | Done | upstream |
Wayland support | Done | upstream |
Hardware decoding of images | To Do |
|
Scenegraph tailoring | To Do |
|
HardFP support | Done | Requires v8 patch |
Qt Multimedia | Done | Requires gst-omx |
Webkit integration | To Do | webgl, tex mapper |
開(kāi)始
首先我們先創(chuàng)建一個(gè)目錄來(lái)存放Qt5的源代碼以及交叉編譯所需要的所有文件,我選擇在當(dāng)前用戶家目錄下創(chuàng)建一個(gè)叫做“opt”的目錄。
1 | diveinedu@debian :~$ mkdir ~ /opt |
2 | diveinedu@debian :~$ cd ~ /opt |
然后,下載以下文件:
下載Raspbian Wheezy 鏡像 (這里下載 [raspberrypi.org]):
1 | diveinedu@debian :~ /opt $ wget http: //downloads .raspberrypi.org /images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian .zip |
2 | diveinedu@debian :~ /opt $unzip 2013-02-09-wheezy-raspbian.zip |
下載解壓完后掛載鏡像:
1 | diveinedu@debian :~ /opt $ sudo mkdir /mnt/rasp-pi-rootfs |
2 | diveinedu@debian:~ /opt $ sudo mount -o loop,offset=62914560 2013-03-09-wheezy-raspbian.img /mnt/rasp-pi-rootfs |
我們這不介紹交叉工具鏈的編譯,直接下載針對(duì)樹(shù)莓派優(yōu)化定制的交叉編譯工具鏈(或者用github上樹(shù)莓派的工具鏈https://github.com/raspberrypi/tools):
1 | diveinedu@debian:~ /opt $ wget http: //blueocean .qmh-project.org /gcc-4 .7-linaro-rpi-gnueabihf.tbz |
2 | diveinedu@debian:~ /opt $ tar -xf gcc-4.7-linaro-rpi-gnueabihf.tbz |
因?yàn)樯厦娴慕徊婢幾g工具是32位Linux的,如果你所使用的是64位Linux的話,還需要安裝32位的運(yùn)行庫(kù)軟件包:
1 | diveinedu@debian:~ /opt $ sudo apt-get install ia32-libs |
如果用的是Debian Wheezy的64位系統(tǒng),上面的行不通,因?yàn)镈ebian Wheezy 64位開(kāi)啟了multiarch-support ,需要執(zhí)行:
1 | diveinedu@debian:~/opt$ sudo apt-get install multiarch-support |
2 | diveinedu@debian:~/opt$ sudo dpkg --add-architecture i386 |
3 | diveinedu@debian:~/opt$ sudo apt-get update |
4 | diveinedu@debian:~/opt$ sudo apt-get install ia32-libs |
從遠(yuǎn)程倉(cāng)庫(kù)克隆一份cross-compile-tools到本地:
1 | diveinedu@debian:~ /opt $ git clone git: //gitorious .org /cross-compile-tools/cross-compile-tools .git |
從遠(yuǎn)程倉(cāng)庫(kù)克隆一份Qt5的源碼庫(kù)到本地:
1 | diveinedu@debian:~ /opt $ git clone git: //gitorious .org /qt/qt5 .git |
2 | diveinedu@debian:~ /opt $ cd qt5 |
3 | diveinedu@debian:~ /opt/qt5 $ . /init-repository |
最后,把qtjsbackend子項(xiàng)目打補(bǔ)丁讓其支持armv6指令集的樹(shù)莓派:
1 | diveinedu@debian:~ /opt/qt5 $ cd ~ /opt/qt5/qtjsbackend |
2 | diveinedu@debian:~ /opt/qt5 $ git fetch https: //codereview .qt-project.org /p/qt/qtjsbackend refs /changes/56/27256/4 && git cherry-pick FETCH_HEAD |
如果有沖突的話就解決沖突的代碼。
編譯qtbase
現(xiàn)在我們已經(jīng)準(zhǔn)備好了為樹(shù)莓派交叉編譯Qt5所需要的全部資源,在正式編譯之前只需要執(zhí)行一個(gè)小腳本來(lái)修正一下符號(hào)鏈接和庫(kù)文件路徑設(shè)置:
1 | diveinedu@debian:~ /opt/qt5 $ cd ~ /opt/cross-compile-tools |
2 | diveinedu@debian:~ /opt/qt5 $ sudo . /fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~ /opt/gcc-4 .7-linaro-rpi-gnueabihf /bin/arm-linux-gnueabihf-gcc |
進(jìn)入qt5/qtbase目錄執(zhí)行以下腳本進(jìn)行配置和編譯工作:
1 | diveinedu@debian:~ /opt/qt5 $ cd ~ /opt/qt5/qtbase |
2 | diveinedu@debian:~ /opt/qt5/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 -reduce-relocations -reduce-exports -release - make libs -prefix /usr/local/qt5pi -no-pch |
3 | diveinedu@debian:~ /opt/qt5/qtbase $ make -j 4 |
4 | diveinedu@debian:~ /opt/qt5/qtbase $ sudo make install |
編譯其他模塊
執(zhí)行到這步的時(shí)候,你已經(jīng)有了針對(duì)樹(shù)莓派交叉編譯的qmake工具了,你可以一一的去交叉編譯Qt5的其他模塊了,為里避免模塊編譯過(guò)程中可能 出現(xiàn)的依賴錯(cuò)誤,建議按照這個(gè)模塊順序去編譯: qtimageformats, qtsvg, qtjsbackend, qtscript, qtxmlpatterns, qtdeclarative, qtsensors, qt3d, qtgraphicaleffects,qtjsondb,qtlocation, qtdocgallery.
模塊編譯相關(guān)的類似命令:
1 | diveinedu@debian:~ /opt/qt5 $ cd qtimageformats |
2 | diveinedu@debian:~ /opt/qt5/qtimageformats $ /usr/local/qt5pi/bin/qmake . |
3 | diveinedu@debian:~ /opt/qt5/qtimageformats $ make -j4 |
4 | diveinedu@debian:~ /opt/qt5/qtimageformats $ sudo make install |
把你所需要或者所想編譯的模塊都按順序執(zhí)行編譯安裝命令后,所有需要的東西都安裝在了鏡像文件(raspbain wheezy image)里面了。我們接下來(lái)就是把他燒到SD卡上去。 SD卡燒寫(xiě)命令:
1 | diveinedu@debian:~ /opt/qt5 $ cd ~ /opt/ |
2 | diveinedu@debian:~ /opt $ sync ; sudo umount /mnt/rasp-pi-rootfs |
3 | diveinedu@debian:~ /opt $ sudo dd bs=1M if =2013-02-09-wheezy-raspbian.img of= /dev/sdc ; sync |
提示:/dev/sdc是我使用的SD的設(shè)備, 請(qǐng)根據(jù)自己的實(shí)際情況修改。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“樹(shù)莓派如何實(shí)現(xiàn)Qt5交叉編譯移植”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
當(dāng)前名稱:樹(shù)莓派如何實(shí)現(xiàn)Qt5交叉編譯移植
瀏覽路徑:http://www.rwnh.cn/article44/jeesee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站制作、全網(wǎng)營(yíng)銷推廣、動(dòng)態(tài)網(wǎng)站、企業(yè)建站、網(wǎng)站收錄
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)