Qt交叉编译Windows编译aarch64程序

发布于:2025-07-16 ⋅ 阅读:(22) ⋅ 点赞:(0)

  最近因工作需求需要在开发板环境(aarch64)里开发qt触控屏程序,由于是首次接触,之前都是在x86_64架构下开发,因此踩了很多坑,现在记录下来开发环境配置,以免以后工作中重复踩坑。

1 开发板环境检查

开发板环境检查很重要不然会出现很多错误,比如说Qt库的版本,gcc的版本,废话少说,上图一目了然:
在这里插入图片描述
可以看到gcc版本为8.3.0,Qt库的版本为5.11.3,这为我们下载交叉编译工具时提供了详细的信息,如果Qt库不对很可能出现兼容问题,而gcc版本不对更为致命,详情可以看我之前的文章:
环境安装(Centos7.9)| gcc8.2安装 + cmake3.30.8安装(解决version `GLIBCXX_3.4.xx‘ not found)
注:这里如果找不到相应版本的Qt和gcc,尽量使Qt的版本大于你板子上的版本,因为Qt一般有向下兼容的特性,gcc尽量低于你板子的版本,不然需要升级你板子里面的gcc。

2 Qt库(Qt5.11.3)配置

2.1 下载Qt库

在这里插入图片描述

2.1 Qt安装

在这里插入图片描述
这里选择Source表示直接将源码安装到指定目录下,就不需要再下载一遍了。
在这里插入图片描述

3 下载交叉编译工具

这个工具之前就介绍过,可能兄弟们没有注意,感兴趣的兄弟可以看一下我之前的文章:
开发板部署|RK3588部署DeepSeek-1.5B
下载链接:aarch64-linux-gnu
这里最好下载跟你板子相同的版本,或者小于你板子版本的交叉编译的gcc/g++,不然可能编译后的程序会犯病,详情可以看我之前的文章:
环境安装(Centos7.9)| gcc8.2安装 + cmake3.30.8安装(解决version `GLIBCXX_3.4.xx‘ not found)
这里犯病的原因是你板子里面的编译器版本过低libstdc++库不支持。

4 ActiveState-Perl安装

不安装会出现报错:‘perl’ 不是内部或外部命令,也不是可运行的程序。
在这里插入图片描述
下载链接:ActiveState-Perl-5.36.0
下载下来是一个exe文件,直接点击安装即可。
然后进入PowerShell输入以下爱命令:

state checkout ActiveState-Projects/ActiveState-Perl-5.36.0 .
state use ActiveState-Perl-5.36.0

使用命令后会提示你安装后的路径,如图所示:
在这里插入图片描述

5 编译aarch64版本的Qt库

5.1 打开之前安装的MinGw

在这里插入图片描述

5.2 配置环境变量

在这里插入图片描述

没错!!配置的就是你上面下载的aarch64-linux-gnu、Qt之前安装的mingw730_64和你之前安装的ActiveState-Perl

5.3 切换到源码目录并编译

这里可以看到安装后的Qt源码路径在:
在这里插入图片描述
在打开的MinGw里面切换到Src目录,然后运行以下命令:

./configure.bat -release -opensource -prefix D:\Develop\Qt5.12.10_aarch64 -nomake tests -nomake examples -no-opengl -skip qtvirtualkeyboard -platform win32-g++ -xplatform linux-aarch64-gnu-g++

注意,这里的-prefix后面改成你要安装的本地计算机路径
如果报错,请去掉./,如图所示:
在这里插入图片描述
configure配置的过程中会让你选择是否:
在这里插入图片描述
直接y然后回车,直到这个界面,才开始编译:

mingw32-make -j16

注:这里的16可换成你的cpu逻辑处理器个数
在这里插入图片描述
编译完成大概是这个样子:
在这里插入图片描述
然后进行安装:

mingw32-make install

安装完是这个样子:
在这里插入图片描述
就是前面你配置的路径。

6 配置Qt Creator

6.1 打开Qt Creator配置环境

打开Qt Creator,分别点击工具–>选项–>Add:
在这里插入图片描述

6.2 配置交叉编译环境

Qt Version配置:
在这里插入图片描述

gcc和g++配置:
在这里插入图片描述
gdb配置:
在这里插入图片描述
make配置:
在这里插入图片描述
Kit配置:
在这里插入图片描述
这里的Kit配置将你上面的配置全部前加上。
这里配置的gcc、g++和gdb就是步骤3下载的交叉编译工具,mingw32-make就是之前Qt下载的Develop And Designer Tools,Qt Version是之前交叉编译的Qt库,每次选完路径完毕之后记得点击Apply。

7 开始编译程序

新建项目选择你设置的交叉编译环境:
在这里插入图片描述

注:这里是不能直接点左下角的运行的,因为你的环境是windows,无法直接运行程序,不然会报错:( 启动程序失败,路径或者权限错误?),如图所示:
在这里插入图片描述
正确的步骤是右键项目点击构建,如图所示,就会直接出现QtTest了:
在这里插入图片描述
如果出现报错```无法启动进程"make"` xxx``,则将你的mingw32-make.exe在目录地下复制一份,然后将名称改为make.exe

8 复制到开发板中检测程序

在这里插入图片描述
如图所示,程序在开发板中运行成功。

总结

  虽然交叉编译开发Qt过程中确实踩了很多坑,但细心回顾后发现,很多问题其实都能通过仔细检查和提前准备来避免。技术本身并不复杂,关键在于对每个步骤的把握。只要在配置环境、选择正确的工具链、处理依赖关系等方面做到充分的检查,许多潜在的问题都会迎刃而解。其实,许多难题的解决往往源于对细节的关注和对文档的深入研究,循序渐进的调试与不断优化也能让过程变得更加顺利。


网站公告

今日签到

点亮在社区的每一天
去签到