- 一、准备工作
1、更新系统软件,目的是使用新版本的gcc 等,还要保证磁盘空间足够
1 yum update 2 yum install gcc gcc-c++ 3 yum install mesa-libGL-devel mesa-libGLU-devel freeglut-devel
2、到linaro下载编译链工具
安装aarch64(arm64)编译链工具,国产CPU,如飞腾、华为麒麟、鲲鹏等是这个架构,这里使用最新版本的gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar
题外话,如果是龙芯3A3000、3A4000等,就是安装mips64el编译链工具。龙芯最新的LoongArch架构似乎还没有编译链工具;
3、下载Qt源代码
根据自身需求选择一个版本下载。源码版本不需要和当前安装的QT一致,但最好不要低于当前安装的版本。不要横跨QT6和QT5,差别太大不要选择。我这里选择5.11.1的源代码
- 二、解压编译链
假设下载的编译链工具放在了/root目录
cd /root #解压 tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar #删除压缩包 rm -rf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.tar #设置环境变量,可输入aarch,然后多按几次tab键,出现提示表示配置成功
echo 'export PATH=$PATH:/root/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin' > /etc/profile.d/aarch64.sh
source /etc/profile
# 回头编译完成后/root/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu文件夹不可删除
- 三、编译aarch64架构的QT
1、假设下载Qt源码放在的/root目录
cd /root # 解压 tar -xvf qt-everywhere-src-5.11.1.tar.xz # 删除压缩包 rm -rf qt-everywhere-src-5.11.1.tar.xz # 进入目录 cd qt-everywhere-src-5.11.1 # config生成makefile ./configure -release -opensource -confirm-license -xplatform linux-aarch64-gnu-g++ -qt-xcb -prefix /opt/Qt5.11.1.aarch64 -nomake examples -no-opengl -silent -qpa linuxfb
#参数表示使用2个线程进行编译,根据电脑的CPU线程数进行设置
make -j 2
#回头编译安装完成后,/root/qt-everywhere-src-5.11.1可删除
上面的make时间较长,等待即可
2、执行命令安装qt到之前指定的目录/opt/Qt5.11.1.aarch64
make install
- 四、设置配置Qt构建套件
1、添加qt版本,工具->选项->Kits->Qt Versions ,添加,选择之前编译的/opt/Qt5.11.1.aarch64/bin/qmake,应用。如下图
2、添加编译器,如下图
3、添加构建套件,注意Qt mkspec填写linux-aarch64-gnu-g++。如下图
3、新建Qt 工程测试
注意这里选择构建套件后,只能编译出目标平台程序,拷贝到目标平台电脑上运行,不能直接允许。
- 参考资料
QT5交叉编译保姆级教程(arm64、mips64)
Centos7 交叉编译QT5.9.9源码 AArch64架构
在64位centos7上交叉编译32位树莓派QT5.9.9