交叉编译QT5.12.10源码

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 指定的目录下。
到此编译结束

posted @ 2022-04-20 09:38  丶丿漫步  阅读(1401)  评论(0编辑  收藏  举报