以Qt5.14.2为例:
准备qt源码(可从qt官方下载)
准备交叉编译链 linux仓库里
sudo apt-get update //更新仓库
sudo apt-get install gcc-aarch64-linux-gnu 安装gcc
sudo apt-get install g++-aarch64-linux-gnu 安装g++
使用 aarch64-linux-gnu-gcc -v 查看
使用env 查看环境变量
由于交叉编译链默认安装到、usr/bin/目录下,编译时指定编译器即可
解压QT源码
增加一个aotoconfigure.sh,进行配置及安装
#!/bin/sh
export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-
export PATH=/usr/bin/:$PATH
export ARCH=arm64
./configure -prefix /opt/Qt_source/qtarm \
-verbose \
-shared \
-release \
-opensource \
-confirm-license \
-xplatform linux-aarch64-gnu-g++ \
-make libs \
-no-opengl \
-nomake tools -nomake tests \
-skip qtdeclarative \
-optimize-size \
-nomake tests \
-nomake examples \
-skip qtquick3d \
-recheck-all
exit
导入编译器 及编译之后的平台
-prefix /opt/Tool/Qt_source/00/qtarm 将交叉编译后的文件放到此目录
-xplatform 指定linux-aarch64-gnu-g++平台
之后切换到
新增一个你要的平台 如linux-aarch64-gnu-g++ ,之后编辑qmake.conf文件
#
# qmake configuration for building with aarch64-linux-gnu-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QMAKE_CFALGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -lts
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /usr/bin/aarch64-linux-gnu-gcc
QMAKE_CXX = /usr/bin/aarch64-linux-gnu-g++
QMAKE_LINK = /usr/bin/aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = /usr/bin/aarch64-linux-gnu-g++
# modifications to linux.conf
QMAKE_AR = /usr/bin/aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = /usr/bin/aarch64-linux-gnu-objcopy
QMAKE_NM = /usr/bin/aarch64-linux-gnu-nm -P
QMAKE_STRIP = /usr/bin/aarch64-linux-gnu-strip
load(qt_config)
编辑完成之后 切换源码目录 直接 sh autoconfigure.sh 进行编译