Windows下在Qt Creator4.9.1环境下配置Qt5.13.0的交叉编译环境以编译出petelinux可以使用的Qt程序(arm架构的 平台下也可以使用),以编译64bit编译环境为例说明
第一步,安装QtCreator4.9.1
下载路径:
http://download.qt.io/official_releases/qt/5.13/5.13.0/
选择:
安装完成后可以编译32bit和64bit的windows下执行程序或者库文件等。
安装完成后要设置环境变量,找到Qt的安装文件夹,环境变量设置路径如下:“<Qt安装文件夹路径>\Tools\mingw730_64\bin”
第二步,下载Qt5.13源代码
下载路径:
http://download.qt.io/official_releases/qt/5.13/5.13.0/single/
选择.zip文件下载即可
下载后解压,本文放置的解压路径D:\qt-everywhere-src-5.13.0,路径qtbase\mkspecs文件夹可以找到linux-aarch64-gnu-g++文件夹,用文本编辑器打开文件夹内的qmake.conf即可查看源码编译时使用的编译器,这里默认使用的编译器是aarch64-linux-gcc和aarch64-linux-g++。
第三步,配置源码编译器
源码编译工具可以使用arm-linux-gnueabihf或者linux-aarch64-gnu-g++,本文使用linux-aarch64-gnu-g++,在qt源码文件夹\qtbase\mkspecs\linux-aarch64-gnu-g++文件夹中可以看到qmake.conf配置文件,包含了编译器的配置。同样mkspecs文件夹下有linux-arm-gnueabi-g++文件夹,包含了gnueabihf的编译器配置。
软件Vivado有 linux-aarch64-gnu-g++,详见路径<Vivado安装路径>\SDK\2018.2\gnu\aarch64\nt\aarch64-linux,可以自行安装vivado软件并配置环境变量,或者从安装vivado软件的主机上拷贝nt\aarch64-linux文件夹的内容到本地,本文中拷贝了gnu文件夹内的aarch32(编译32bit代码时应该要用到)和aarch64两个编译器文件。
设置环境变量
“< aarch64-linux 文件夹路径>\aarch64\nt\aarch64-linux\bin”
第四步,安装Active Perl
下载地址:https://www.perl.org/get.html
选择下载如下的工具
安装完成后将“<安装路径>\bin”添加至环境变量
第五步,安装python
本机安装的是python3.6
第六步,交叉编译QT源码
1、编译配置:
configure.bat -release -opensource -xplatform linux-aarch64-gnu-g++ -prefix D:\ProgramFiles\Qt\QtMake\linux_arm64 -nomake tests -nomake examples -no-opengl -skip qtvirtualkeyboard
配置属性说明:
-xplatform 表示使用源码路径qtbase\mkspecs\linux-aarch64-gnu-g++文件夹内的配置,编译时会自动去该路径下找到配置文件进行编译
-prefix 指示安装路径
-no-opengl 表示不安装OpenGL
-skip 表示不安装的qt工具包,工具包的名称即为源码路径下的文件夹名称
打开命令行,进到Qt源码文件夹,运行上面的指令即可
2、编译:
运行指令mingw32-make
3、安装
运行指令mingw32-make install
第七步,配置QtCreator
QtCreator4.9.1的配置过程和之前的QtCreator版本配置项相同,配置位置略有差异,主要配置流程如下:
1、配置QMake
打开“工具->选项->kits”,选择Qt Version页面
点击右侧添加按键,选择编译出的源码路径下的bin文件(就是配置Qt源码编译后存放编译结果的那个路径)夹内的QMake.exe即可。
2、配置编译器Compilers
该部分主要添加C++和C的编译器,用于编译arm版本的代码,
设置GCC的C编译器,打开“工具->kits->编译器(Compilers)”
右侧选择“添加->GCC->C”,编译器路径即为gnu工具中的C编译器aarch64-linux-gnu-gcc所在路径,ABI设置为arm-linux-generic-elf-64bit
设置GCC的C++编译器,打开“工具->kits->编译器(Compilers)”,右侧选择“添加->GCC->C++”,编译器路径即为gnu工具中的C++编译器aarch64-linux-gnu-g++所在路径,ABI设置为arm-linux-generic-elf-64bit
配置完成后在kits的编译器页面会出现对应的配置项,如下
3、配置Debuggers
该部分配置调试工具,使用gnu编译器所在文件夹下的gdb调试工具,
打开“工具->选项->kits->Debuggers”,点击Add添加新的调试工具,这里选择gnu编译工具集合下的aarch64-linux-gnu-gdb工具,在gnu工具下的aarch64-linux\bin路径
配置结束后会在Debuggers页面下新增调试工具
4、配置CMake
该部分用于编译得到嵌入式系统下的执行程序或者库文件,使用QtCreator自带的CMake编译工具,个人理解这里的CMake是交叉编译工具,之前配置的QMake是Qt代码的编译工具
依次选择“工具->选项->Kits->CMake”,点击Add按键添加新的编译工具,选择添加mingw32-make.exe,所在路径
“<QtCreator安装路径> \Tools\mingw730_64\bin\mingw32-make.exe”
配置成功后在CMake页面会有显示
5、添加Arm64的编译环境(构建套件Kits)
该部分用于配置编译Qt代码时的编译环境,基本是将前面的配置内容添加到编译环境里
依次选择“工具->选项->Kits->构建套件(Kit)”,点击右侧Add按键进行配置,配置项目选择前面配置好的内容即可,主要配置内容见下图
配置完成后再次进到该“构建套件(Kit)”页面会有如下显示,其中linux_arm64为新增加的编译环境,前面两个是QtCreator安装时配置好的构建环境
第八步,创建Qt工程验证
目前QtCreator编译linux arm64的环境已经已经配置完成,验证是否可以进行编译,
Ctrl+N创建一个新的桌面应用程序,构建套件时选择linux_arm64即可
待程序创建好后,在工作窗口左侧“项目”界面修改Override make选项,点击Make选项右侧的详情即可列出override make栏,选择QtCreator安装路径下的\Tools\mingw730_64\bin\mingw32-make.exe。
然后ctrl+b进行工程编译即可,debug和profile模式设置类似,将上图中Release选项调整为debug或者profile即可,仍旧是设置override make栏。
编译生成的执行程序或者库文件见上图中“构建目录”中列出的路径,注意只能编译,而不能运行。