Windows下交叉编译Qt 5.14.2至树莓派平台 & QEMU模拟树莓派

  • 2020 年 09 月 07 日
  • 347次
  • 546 字
  • 暂无评论

前些天有几个项目都打算用树莓派+Qt进行开发,可以手头没有树莓派设备,而且由于硬盘空间不太够了,想直接在Windows下开发,于是经过一番折腾,就有了这篇文章....

如果感觉编译要等很久、很难受,可以直接跳过交叉编译这一步,直接下载我编译好的就行啦:蓝奏云下载
下载完成后,直接跳转至本文第二部分-配置Qt Creator,按步骤操作即可。

交叉编译

注意!经过几番实践,发现linaro提供的普通armv7、armv8l交叉编译器(arm-linux-gnueabihf)所编译出的程序,无法在树莓派上运行,会报“非法指令”的错误。我猜想,树莓派虽然是ARM架构,但或许它的Linux内核缺少一些指令,导致报错。

下载安装Perl

Strawberry Perl的下载地址:Perl

下载安装Python

可以用Python官网的,不过可能下载较慢,推荐直接用tuna提供的Anaconda或Miniconda:Anaconda3-x64 Anaconda3-x86 Miniconda3-x64 Miniconda3-x86

下载安装MinGW

推荐使用MinGW-w64,比较稳:MinGW-w64

下载安装交叉编译工具链

Windows平台下的树莓派arm平台交叉编译工具链可在这里下载:GNU-Toolchains

安装即可

下载Qt源码

可在Tuna上找到相应源码:Qt-Everywhere

解压至某个目录即可。

准备工作

在源码目录---qtbase---mkspecs---linux-arm-gnueabi-g++文件夹中有个qmake.conf文件,将其中的gnueabi全部换为gnueabihf

删除源码目录下的qtquick3d文件夹。

Configure

打开cmd,cd至源码目录,执行以下命令:

configure.bat -release -opensource -prefix 编译目标目录 -nomake tests -nomake examples -no-opengl -skip qtvirtualkeyboard -skip qtwebengine -skip qtwebengine -skip qt3d -skip qttools -xplatform linux-arm-gnueabi-g++

中间会跳出是否同意协议的提示,输入y同意即可。

mingw32-make -j8

Configure成功后,即可开始运行mingw32-make -j8,进行编译工作。其中-j后面的数字表示编译所使用的线程数量,一般看电脑有几个逻辑处理器就用几个线程。

编译时间可能会比较久,得耐心等待。

mingw32-make install

mingw32-make成功后,即可开始运行mingw32-make install,将编译所得输出到Configure时设定的编译目标目录。

这一步骤时间可能也比较久,需要耐心等待。

配置Qt Creator

点击菜单栏工具--选项,选中左侧的“Kits”,按如下设置:

添加编译器

交叉编译器

添加QMake

QMake

添加调试器

调试器

添加Kits

Kits


版权属于:huanghaozi

本文链接:https://huanghaozi.cn/index.php/archives/247/



—— 暂无评论 ——

OωO