在Linux環(huán)境交叉編譯Qt5.5.0源碼及編譯示例
實(shí)驗(yàn)環(huán)境
交叉編譯平臺 (on VMware14.0,Win10)
交叉編譯鏈 gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux
前提 得到交叉編譯鏈以及下載Qt5.5.0的源碼包
硬件 無
實(shí)驗(yàn)?zāi)康?/p>
在Linux上使用交叉編譯鏈編譯出Qt5.5的庫以及qmake工具。
實(shí)驗(yàn)原理
根據(jù)Qt5.5.0源碼包內(nèi)的README文件,先安裝好編譯所需的庫如X11,Xcb等

然后根據(jù)如下格式進(jìn)行配置安裝:

編譯Qt庫主要步驟:
1、下載并解壓安裝交叉編譯鏈,設(shè)置環(huán)境變量;
2、下載并解壓所需Qt源碼包,得到源碼;
3、下載編譯所需的庫;
4、更改qmake.conf文件中的編譯鏈信息,與所用交叉編譯鏈統(tǒng)一;
5、進(jìn)行配置,得到MAKEFILE文件;
6、make make install;
7、設(shè)置qmake鏈接的庫路徑;
實(shí)驗(yàn)過程
1、已獲得交叉編譯鏈:

解壓完其目錄文件以及bin內(nèi)命令如圖:
2、設(shè)置環(huán)境變量并驗(yàn)證

(注:使用export PATH時只對本次終端起作用,若另開終端無此環(huán)境變量,若需永久則需在/etc/profile或/etc/.bash.bashc文件中export PATH)

顯示編譯鏈的版本相關(guān)信息,完成。
3、從Qt官網(wǎng)下載開源源碼包,解壓得文件如下:

3、安裝相關(guān)的庫

4、修改對應(yīng)qmake.conf文件

根據(jù)交叉編譯鏈修改(此處為了保險(xiǎn)加了交叉編譯鏈的絕對路徑):

5、進(jìn)行配置,主要配置版本(-release)、安裝目錄(-prefix+路徑)、所使用的平臺(-xplatform linux-arm-gnueabi-g++)、附加項(xiàng)等

回車后會顯示詢問
Yes 回車
打印相關(guān)信息

…

此時已生成MAKEFILE文件
6、make (可加參數(shù)多線程編譯-j)
7、make install
8、到安裝目錄下:

9、./bin目錄下

10、qmake -v打印版本信息以及基于的庫目錄

嘗試交叉編譯Qt工程
用qtcreater新建一個帶ui的工程,用qmake編譯,查詢文件信息


發(fā)現(xiàn)錯誤,編譯出來是x86-64的而非arm的,查詢發(fā)現(xiàn)是qmake鏈接的庫出現(xiàn)問題,默認(rèn)安裝后所鏈接到/usr/lib/x86_64-linux-gnu目錄下的庫,而交叉編譯所需的庫在安裝目錄下的lib里,所以需更改路徑;
1、cd到/usr/lib/x86_64-linux-gnu/qtchooser
2、更改該目錄下的qt5.conf文件,其默認(rèn)是/usr/lib/x86_64-linux-gnu
改成安裝目錄下的lib目錄

保存后重新qmake工程,生成MAKEFILE文件后執(zhí)行make
qmake -v查看qt版本、庫路徑以及file untitled查看可執(zhí)行文件信息如下

此時已正確顯示版本信息以及成功交叉編譯為ARM架構(gòu)所需文件,完成。