前些天有几个项目都打算用树莓派+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”,按如下设置: