前言
最近在搞交叉編譯的事,手上拿了個(gè)同事的香橙派玩交叉編譯,現(xiàn)在來(lái)到了第一步,就是先在arm上配置qt的開(kāi)發(fā)環(huán)境。當(dāng)然了Qt沒(méi)有直接提供qt on arm,而是需要自行在arm環(huán)境下編譯一個(gè)qt環(huán)境出來(lái),所以這里需要使用到qt提供的qt everywhere套件在板載系統(tǒng)上編譯
參考文章
移植Qt到ARM平臺(tái)及搭建Qt交叉編譯環(huán)境
正文
前排提示,之前我在網(wǎng)上參考了很多教程,在一些板子上如果直接嘗試編譯,直接使用./configure -prefix xxx 來(lái)編譯,就會(huì)有比如在我嘗試使用Qt-everywhere進(jìn)行編譯的時(shí)候,提示報(bào)錯(cuò)xx/lib/libqtharfbuzz.a:No such file or directory 的bug,導(dǎo)致編譯失敗,沒(méi)有下文了。
所以我們?cè)赼rm板上編譯的時(shí)候需要做一些取舍,有些模塊是我們不需要的,就要在./configure的時(shí)候?qū)⑵錁?biāo)注為不需要
流程
qt-everywhere的編譯流程大致如下:
- 下載qt-everywhere包,并解壓到任意路徑Path_下
- 使用./configure命令對(duì)當(dāng)前工程進(jìn)行配置,指定編譯行為
- 使用gmake install命令開(kāi)始編譯
具體流程
1. 下載qt-everywhere包
download.qt.io
然后我們將這個(gè)qt-everywhere-src-5.12.10.tar.xz文件解壓到某個(gè)文件夾下,比如
2. 使用./configure命令配置編譯流程
這里的具體內(nèi)容可以參考
Qt移植到ARM64-v8平臺(tái)(NXP i.MX8M)筆記
但是我這里不做過(guò)多介紹,cd到qt-everywhere-src-5.12.10目錄下直接使用./configure -prefix ~/qtInstall 把這個(gè)qt的編譯后成功指定到qtInstall目錄下了,具體的目錄可以自己指定
如果./configure命令一切正常的話,則上述會(huì)提示你現(xiàn)在可以使用make install命令進(jìn)行編譯,如果出現(xiàn)這個(gè)提示則可以直接進(jìn)行編譯了。
我在編譯的時(shí)候會(huì)報(bào)錯(cuò),提示是一個(gè)和數(shù)字有關(guān)的函數(shù)未被定義,我這里是qendian.h里面少了頭文件,我往里面手動(dòng)加了一個(gè)#include <limits> 就可以了,不過(guò)我也不知道這合不合適
3.使用make install 命令開(kāi)始進(jìn)行編譯
上述提示出現(xiàn)后,就可以使用make install來(lái)進(jìn)行編譯和安裝了
報(bào)錯(cuò)
- 在安裝的過(guò)程中,報(bào)錯(cuò)Error2 xx/lib/libqtharfbuzz.a:No such file or directory
這個(gè)是因?yàn)槲业膌inux環(huán)境里沒(méi)有安裝libharfbuzz庫(kù),使用sudo apt-get install libharfbuzz-dev,刪掉build出來(lái)的內(nèi)容,重新編譯即可。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-847327.html
- 安裝的過(guò)程中,提示webengine需要python
同上,sudo apt-get install python 即可文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-847327.html
到了這里,關(guān)于Linux-Arm環(huán)境下配置編譯qt-everywhere及交叉編譯環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!