• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
主題 : Qt5交叉編譯移植新手指南 復制鏈接 | 瀏覽器收藏 | 打印
QQ群 嵌入式之家西安群1(172531658)嵌入式之家群1(41422269)http://www.cmeee.com/
級別: 俠客
UID: 15142
精華: 1
發帖: 40
金錢: 250 兩
威望: 50 點
貢獻值: 1 點
綜合積分: 100 分
注冊時間: 2010-03-01
最后登錄: 2017-08-16
樓主  發表于: 2013-11-19 14:43

 Qt5交叉編譯移植新手指南

管理提醒: 本帖被 xoom 執行提前操作(2013-11-20)
開始
首先我們先創建一個目錄來存放Qt5的源代碼以及交叉編譯所需要的所有文件,我選擇在當前用戶家目錄下創建一個叫做“opt”的目錄。
1    [email protected]:~$ mkdir  ~/opt
2    [email protected]:~$ cd  ~/opt

然后,下載以下文件:

下載Raspbian Wheezy 鏡像  (這里下載 [raspberrypi.org]):
1    [email protected]:~/opt$ wget  downloads.raspberrypi.org/images/raspbia...-wheezy-raspbian.zip
2    [email protected]:~/opt$unzip  2013-02-09-wheezy-raspbian.zip

下載解壓完后掛載鏡像:
1    [email protected]:~/opt$ sudo  mkdir  /mnt/rasp-pi-rootfs
2    [email protected]:~/opt$ sudo mount  -o loop,offset=62914560 2013-03-09-wheezy-raspbian.img    /mnt/rasp-pi-rootfs

我們這不介紹交叉工具鏈的編譯,直接下載針對樹莓派優化定制的交叉編譯工具鏈(或者用github上樹莓派的工具鏈https://github.com/raspberrypi/tools):
1    [email protected]:~/opt$  wget  blueocean.qmh-project.org/gcc-4.7-linaro-rpi-gnueabihf.tbz
2    [email protected]:~/opt$   tar -xf gcc-4.7-linaro-rpi-gnueabihf.tbz

因為上面的交叉編譯工具是32位Linux的,如果你所使用的是64位Linux的話,還需要安裝32位的運行庫軟件包:
1    [email protected]:~/opt$  sudo apt-get install ia32-libs

如果用的是Debian Wheezy的64位系統,上面的行不通,因為Debian Wheezy 64位開啟了multiarch-support ,需要執行:
1    [email protected]:~/opt$  sudo apt-get install multiarch-support
2    [email protected]:~/opt$  sudo dpkg --add-architecture i386
3    [email protected]:~/opt$  sudo apt-get update
4    [email protected]:~/opt$  sudo apt-get install ia32-libs



從遠程倉庫克隆一份cross-compile-tools到本地:
1    [email protected]:~/opt$  git clone git://gitorious.org/cross-compile-tools/cross-compile-tools.git

從遠程倉庫克隆一份Qt5的源碼庫到本地:
1    [email protected]:~/opt$  git clone git://gitorious.org/qt/qt5.git
2    [email protected]:~/opt$   cd qt5
3    [email protected]:~/opt/qt5$  ./init-repository

最后,把qtjsbackend子項目打補丁讓其支持armv6指令集的樹莓派:
1    [email protected]:~/opt/qt5$  cd ~/opt/qt5/qtjsbackend
2    [email protected]:~/opt/qt5$  git fetch codereview.qt-project.org/p/qt/qtjsbackend  refs/changes/56/27256/4   &&   git  cherry-pick  FETCH_HEAD

如果有沖突的話就解決沖突的代碼。




編譯qtbase
現在我們已經準備好了為樹莓派交叉編譯Qt5所需要的全部資源,在正式編譯之前只需要執行一個小腳本來修正一下符號鏈接和庫文件路徑設置:
1    [email protected]:~/opt/qt5$  cd  ~/opt/cross-compile-tools
2    [email protected]:~/opt/qt5$  sudo  ./fixQualifiedLibraryPaths/mnt/rasp-pi-rootfs/~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc

進入qt5/qtbase目錄執行以下腳本進行配置和編譯工作:
1    [email protected]:~/opt/qt5$ cd ~/opt/qt5/qtbase
2    [email protected]:~/opt/qt5/qtbase$ ./configure -opengl es2 -devicelinux-rasp-pi-g++ -device-optionCROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf--sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license-optimized-qmake -reduce-relocatio n s -reduce-exports -release -make libs-prefix /usr/local/qt5pi -no-pch
3    [email protected]:~/opt/qt5/qtbase$ make -j 4
4    [email protected]:~/opt/qt5/qtbase$ sudo make install


編譯其他模塊
執行到這步的時候,你已經有了針對樹莓派交叉編譯的qmake工具了,你可以一一的去交叉編譯Qt5的其他模塊了,為里避免模
塊編譯過程中可能出現的依賴錯誤, 建議按照這個模塊順序去編譯: qtimageformats, qtsvg, qtjsbackend, qtscript,qtxmlpatterns, qtdeclarative, qtsensors, qt3d,qtgraphicaleffects,qtjsondb,qtlocation, qtdocgallery.
模塊編譯相關的類似命令:
1    [email protected]:~/opt/qt5$ cd qtimageformats
2    [email protected]:~/opt/qt5/qtimageformats$ /usr/local/qt5pi/bin/qmake .
3    [email protected]:~/opt/qt5/qtimageformats$ make -j4
4    [email protected]:~/opt/qt5/qtimageformats$ sudo make install

把你所需要或者所想編譯的模塊都按順序執行編譯安裝命令后,所有需要的東西都安裝在了鏡像文件(raspbain wheezy image)里面了。我們接下來就是把他燒到SD卡上去。 SD卡燒寫命令:
1    [email protected]:~/opt/qt5$ cd ~/opt/
2    [email protected]:~/opt$ sync; sudo umount /mnt/rasp-pi-rootfs
3    [email protected]:~/opt$ sudo dd bs=1M if=2013-02-09-wheezy-raspbian.img of=/dev/sdc; sync

提示:/dev/sdc是我使用的SD的設備, 請根據自己的實際情況修改。



到這里,Qt5運行庫的編譯移植過程就Done了。

更多。。。
級別: 禁止發言
UID: 94455
精華: 0
發帖: 56
金錢: 295 兩
威望: 59 點
貢獻值: 0 點
綜合積分: 112 分
注冊時間: 2013-07-17
最后登錄: 2014-07-24
1樓  發表于: 2013-12-03 15:21
用戶被禁言,該主題自動屏蔽!
級別: 新手上路
UID: 95089
精華: 0
發帖: 15
金錢: 75 兩
威望: 15 點
貢獻值: 0 點
綜合積分: 30 分
注冊時間: 2013-08-02
最后登錄: 2014-07-20
2樓  發表于: 2014-07-20 21:29
頂友善,看看這款友善的杰作,友善全國開發板No.1 比起那種抄板的,您更相信誰呢,當然是友善之臂,全國開發板領頭羊.
級別: 新手上路
UID: 64736
精華: 0
發帖: 7
金錢: 35 兩
威望: 7 點
貢獻值: 0 點
綜合積分: 14 分
注冊時間: 2012-03-09
最后登錄: 2017-09-13
3樓  發表于: 2014-09-26 12:10
QT5怎么支持中文呢?
級別: 俠客
UID: 401
精華: 0
發帖: 77
金錢: 470 兩
威望: 190 點
貢獻值: 0 點
綜合積分: 154 分
注冊時間: 2008-03-27
最后登錄: 2018-09-19
4樓  發表于: 2014-11-24 10:46
級別: 新手上路
UID: 15314
精華: 0
發帖: 27
金錢: 135 兩
威望: 27 點
貢獻值: 0 點
綜合積分: 54 分
注冊時間: 2010-03-03
最后登錄: 2015-05-04
5樓  發表于: 2015-01-15 15:06
學習。。。。。借鑒。。。。。。。。。。。。
級別: 俠客
UID: 14619
精華: 0
發帖: 98
金錢: 490 兩
威望: 98 點
貢獻值: 0 點
綜合積分: 196 分
注冊時間: 2010-02-17
最后登錄: 2016-07-15
6樓  發表于: 2015-04-21 12:32
很給力,10個贊
jacky
天天酷跑,酷跑天天
級別: 俠客
UID: 96347
精華: 0
發帖: 61
金錢: 305 兩
威望: 61 點
貢獻值: 0 點
綜合積分: 122 分
注冊時間: 2013-09-12
最后登錄: 2019-03-14
7樓  發表于: 2015-07-31 09:54
謝謝樓主分享
級別: 新手上路
UID: 97913
精華: 0
發帖: 33
金錢: 165 兩
威望: 33 點
貢獻值: 0 點
綜合積分: 66 分
注冊時間: 2013-11-09
最后登錄: 2016-12-29
8樓  發表于: 2015-10-22 14:36
請問QT5可以支持多點觸摸嗎?

QT4用了TSLIB是只支持單點觸摸的

現在我要做QT,而且是支持多點觸摸的,請問QT5能實現嗎?
級別: 新手上路
UID: 97913
精華: 0
發帖: 33
金錢: 165 兩
威望: 33 點
貢獻值: 0 點
綜合積分: 66 分
注冊時間: 2013-11-09
最后登錄: 2016-12-29
9樓  發表于: 2015-10-22 14:37
QT4用了TSLIB是只支持單點觸摸的,

現在我要做QT,而且是支持多點觸摸的,請問QT5能實現嗎?
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
死或生沙滩排球下载