最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

QT5交叉編譯入門級教程(arm64、mips64)

 更新時間:2023年11月01日 14:55:42   作者:skyyx2002  
交叉編譯就是在當(dāng)前系統(tǒng)平臺上,開發(fā)編譯運行于其它平臺的程序,比如本文硬件環(huán)境是x86平臺,但是編譯出來的程序是在arm64架構(gòu)、mips64等架構(gòu)上運行,本文給大家分享QT5交叉編譯入門級教程(arm64、mips64),感興趣的朋友一起看看吧

什么是交叉編譯?

簡單說,就是在當(dāng)前系統(tǒng)平臺上,開發(fā)編譯運行于其它平臺的程序。

比如本文硬件環(huán)境是x86平臺,但是編譯出來的程序是在arm64架構(gòu)、mips64等架構(gòu)上運行

本文使用的操作系統(tǒng):統(tǒng)信UOS家庭版22.0

一、安裝QT5(如果已安裝跳過此步):

sudo apt update
sudo apt install qtbase5-dev -y
sudo apt install qtcreator -y

二、安裝編譯相關(guān)組件

sudo apt install build-essential libgl1-mesa-dev gperf libclang-dev -y

#安裝python環(huán)境(如果你的程序中不需要調(diào)用python,可以不裝)

sudo apt install python -y
sudo apt install python-dev -y
sudo apt install python-pip -y

#安裝aarch64(arm64)編譯鏈工具。國產(chǎn)CPU,如飛騰、華為麒麟等都是這個架構(gòu)

sudo apt install g++-aarch64-linux-gnu -y
sudo apt install gcc-aarch64-linux-gnu -y

#安裝mips64el編譯鏈工具。龍芯3A3000、3A4000等是此架構(gòu)。龍芯最新的LoongArch架構(gòu)似乎還沒有編譯鏈工具

sudo apt install gcc-mips64el-linux-gnuabi64 -y
sudo apt install g++-mips64el-linux-gnuabi64 -y

三、下載QT5源碼

QT官方下載地址:Index of /archive/qt

https://download.qt.io/archive/qt

根據(jù)自身需求選擇一個版本下載。源碼版本不需要和當(dāng)前安裝的一致,但最好不要低于當(dāng)前安裝的版本。QT6和QT5差別太大,不要選擇。

這里我隨手選了一個5.12.2的版本,可以直接在網(wǎng)頁上下載、用下載工具下載、還可以使用命令下載:

#下載源碼:
wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz
#下載好后,解壓源碼:
tar -xvf qt-everywhere-src-5.12.2.tar.xz?

四、配置和編譯源碼

1.配置編譯QT5的aarch64架構(gòu)源碼

進(jìn)入剛才解壓好的源碼目錄中,打開終端輸入:

#配置編譯參數(shù)
./configure -release -opensource -confirm-license -xplatform linux-aarch64-gnu-g++ -prefix /usr/local/qt5.12.2arm -nomake examples -no-opengl -silent -qpa linuxfb

如圖:

其中:/usr/local/qt5.12.2arm 是編譯后的安裝目錄,可自行修改

執(zhí)行成功的話,如圖:

編譯:

make -j 12

-j 12參數(shù)表示使用12個線程進(jìn)行編譯,根據(jù)電腦的CPU線程數(shù)進(jìn)行設(shè)置即可。

編譯過程較長,如果編譯過程中需要進(jìn)行其它操作,適當(dāng)減少線程數(shù),以免操作太卡。

編譯成功后,如圖:

將編譯好的文件安裝到指定位置(安裝位置在前面配置參數(shù)時已設(shè)置):

sudo make install

2.配置編譯QT5的mips64架構(gòu)源碼

先將前面解壓的qt-everywhere-src-5.12.2文件夾改名或者刪除,然后重啟一下電腦!

為什么要重啟?因為我在編譯完aarch64之后,接著編譯mips64時編譯出錯,重啟之后才正常。

為了避免不必要的錯誤,因此建議先重啟一下。

使用命令重新解壓源碼:

tar -xvf qt-everywhere-src-5.12.2.tar.xz

QT源碼里并沒有mips64的編譯項,因此這里需要手動創(chuàng)建。

進(jìn)入剛才解壓的源碼目錄,再進(jìn)入其下級目錄:qtbase/mkspecs 如圖:

找到linux-aarch64-gnu-g++文件夾,將其復(fù)制一份。如圖:

將其改名為:linux-mips64el-g++  然后雙擊進(jìn)入,里面有兩個文件:qmake.conf、qplatformdefs.h

打開qmake.conf文件,打開后如圖:

將aarch64全部替換為mips64el、gnu替換成gnuabi64,替換后如圖:

修改完成,保存關(guān)閉文件即可。

回到源碼根目錄,在終端中執(zhí)行參數(shù)配置:

./configure -release -opensource -confirm-license -xplatform linux-mips64el-g++ -prefix /usr/local/qt5.12.2mips64 -nomake examples -no-opengl -silent -qpa linuxfb

如圖:

 執(zhí)行成功如圖:

編譯安裝和aarch64是一樣的:

make -j12  #編譯源碼。注意根據(jù)自已CPU的線程數(shù)修改12這個數(shù)
sudo make install  #安裝編譯好的源碼

五、配置QT

打開Qt Creator,選擇 工具->選項->Kits->Qt Versions 如圖:

點擊右側(cè)的“添加...”按鈕,在彈出的窗口中選擇前面編譯安裝好的QT目錄下的qmake,如圖:

添加好后,點擊右下角的“Apply”按鈕。然后點擊“構(gòu)建套件(Kit)”選項卡:

點擊右側(cè)“添加”按鈕,配置如圖:

其中,名稱可自行修改;

編譯器可以選擇gcc,只是我比較喜歡Clang,所以這里選的Clang;

注意:Qt mkspec 一定要填!

至于紅色的感嘆號,這個不用在意,不影響編譯。

mips64的配置也差不多:

六、驗證測試

現(xiàn)在,創(chuàng)建一個工程來驗證一下交叉編譯是否正常。

先測試aarch64架構(gòu):

需要注意的是,異架構(gòu)的程序是不能直接運行的。所以我們不運行它,直接點擊左下方的“錘子”或者按Ctrl+B來構(gòu)建。

編譯沒有出錯。使用file命令,看一下編譯后的文件:

如圖所示,編譯出來的程序確實是ARM aarch64 架構(gòu)!

再看一下MIPS64的編譯結(jié)果:

OK,搞定收工..

關(guān)于龍芯最新的“龍”(LoongArch)架構(gòu),似乎還沒有編譯鏈工具,因此還沒法交叉編譯。。

到此這篇關(guān)于QT5交叉編譯保姆級教程(arm64、mips64)的文章就介紹到這了,更多相關(guān)QT5交叉編譯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 2048小游戲C語言實現(xiàn)代碼

    2048小游戲C語言實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了2048小游戲C語言實現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 怎樣用cmd運行C程序

    怎樣用cmd運行C程序

    這篇文章主要介紹了怎樣用cmd運行C程序?今天就來和大家分享一下用cmd運行C程序的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • C語言中數(shù)據(jù)如何存儲進(jìn)內(nèi)存揭秘

    C語言中數(shù)據(jù)如何存儲進(jìn)內(nèi)存揭秘

    使用編程語言進(jìn)行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么
    2022-08-08
  • C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除)

    C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除)

    本文主要介紹了C++使用cjson操作Json格式文件(創(chuàng)建、插入、解析、修改、刪除),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • OpenCV實現(xiàn)圖像細(xì)化算法

    OpenCV實現(xiàn)圖像細(xì)化算法

    本文主要介紹了OpenCV實現(xiàn)圖像細(xì)化算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • c++實現(xiàn)解析zip文件的示例代碼

    c++實現(xiàn)解析zip文件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用c++實現(xiàn)解析zip文件,并對流式文件pptx內(nèi)容的修改,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2023-12-12
  • Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程

    Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程

    這篇文章主要介紹了Visual Studio Code (vscode) 配置 C / C++ 環(huán)境的流程,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • C語言基于單鏈表實現(xiàn)通訊錄功能

    C語言基于單鏈表實現(xiàn)通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了C語言基于單鏈表實現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • C++ STL容器stack和queue詳解

    C++ STL容器stack和queue詳解

    這篇文章主要介紹了C++ STL容器stack和queue詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 教你如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù)

    教你如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù)

    通過本文教大家如何使用C++ 統(tǒng)計地鐵中站名出現(xiàn)的字的個數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-01-01

最新評論

壤塘县| 浙江省| 灵丘县| 公主岭市| 富川| 宜川县| 冕宁县| 太康县| 左贡县| 肃宁县| 宁阳县| 安多县| 合阳县| 湖南省| 石楼县| 上虞市| 长春市| 镇雄县| 峨眉山市| 荆门市| 竹山县| 云阳县| 阜宁县| 韩城市| 辰溪县| 家居| 昌吉市| 上犹县| 云林县| 牟定县| 普宁市| 和田市| 五大连池市| 宜黄县| 珲春市| 松潘县| 廊坊市| 安徽省| 常宁市| 丘北县| 桓仁|