1. 環境
操作系統:ubuntu18.04
交叉編譯工具版本:gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
2. 文件下載地址
鏈接:https://pan.baidu.com/s/17BF0mC6RDW21GeVaVWqw9g
提取碼:8090
3. 下載文件並將其放在虛擬機下
4. 安裝交叉編譯器
解壓文件
sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar -C /opt/
解壓完成后,配置環境變量
sudo gedit ~/.bashrc
在文件底部添加編譯器路徑
保存更改,使配置生效
source ~/.bashrc
驗證是否安裝成功
aarch64-linux-gnu-gcc -v
如下圖即為成功
5. 編譯QT源碼
解壓源碼
sudo tar xvf qt-everywhere-src-5.12.10.tar.xz
cd qt-everywhere-src-5.12.10
然后cd到源碼的這個目錄下
選擇名稱與你所用編譯工具相近的文件夾拷貝一份,重命名為所用編譯器名稱(重要,否則會出現ERROR: Invalid target platform 'arm-linux-gnueabi-g++'.)
sudo cp -a linux-aarch64-gnu-g++/ aarch64-linux-gnu-g++/
修改qmake.conf文件
修改前
修改后,圖中所選部分為交叉編譯工具安裝路徑
6. 配置編譯參數
1、由於編譯時會生成不少臨時文件,為避免污染源碼,建議新建一個文件,作為構建目錄
2、在該目錄下創建一個autoconfig.sh的腳本,添加如下內容
#!/bin/sh
../qt-everywhere-opensource-src-5.12.10/configure \
-xplatform aarch64-linux-gnu-g++ \
-verbose \
-opensource \
-release \
-shared \
-confirm-license \
-make libs \
-nomake tests \
-nomake examples \
-skip qtmacextras \
-skip qtandroidextras \
-no-opengl \
-prefix /home/hxz/qt_arm/qt_5.12.10_arm
../qt-everywhere-opensource-src-5.12.10/configure 這一行為,源碼中configure文件相對於構建目錄的位置
-xplatform aarch64-linux-gnu-g++ 指定編譯工具
-prefix /home/hxz/qt_arm/qt_5.12.10_arm 指定最后通過make install生成文件所放位置
3、執行腳本文件
sudo ./autoconfig.sh
4、執行make對源碼進行編譯,過程較長,大約需要3個小時
make -j8
5、執行make install
sudo make install
在編譯完成后執行 make install 會將qt庫安裝到 -prefix 指定的目錄下。
到此編譯結束