适用于树莓派Raspberry Pi的嵌入式QT平台(二) -- 在Windows下用Qt Creator开发编译Raspberry Qt 5应用程序
接着上篇 "交叉编译安装Qt Embedded 5.5",我们已经成功在Windows上交叉编译了Raspberry Pi的嵌入式Qt 5.5。那么我们就可以开始开发基于Qt 5的应用程序。接下来,我们需要在Windows上搭建必要的Qt开发工具,首当其冲就是官方的Qt Creator,不仅提供了原生的C++编辑器,Qt界面设计器,而且还可以集成现有的 Qmake, gcc 甚至于Visual Studio C++编译器来配置编译Qt项目,自带的QML解释器可以快速的将QML内容翻译成代码并集成子啊项目中;而且利用自带的GDB可以进行代码运行时调试。
下面,我们就利用Windows平台上的Qt Creator与我们已经准备好的树莓派中的 Qt 5.5 来集成开发基于Raspberry Pi的Qt Embedded应用程序。过程中,我们需要交叉编译Raspberry Pi版的GDB用于远程调试。
1. 准备工作
- Qt Creator for Windows:http://download.qt.io/official_releases/qtcreator/3.6/3.6.0/qt-creator-opensource-windows-x86-3.6.0.exe
- 或者我们也可以下载安装 Qt 5.5.1 for Windows 32-bit (MinGW 4.9.2):http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-windows-x86-mingw492-5.5.1.exe
里面已经带了Qt Creator - 当然,我们也可以选择Qt for Windows (VS编译版本)
安装Qt for Windows,我们可以注册一个Qt账号,然后选择安装目录并继续。
2. 配置编译环境
安装完成后,打开Qt Creator。在Creator中的项目,类似于 Xcode,我们需要配置好多种目标环境,不同的项目需要配置指定目标环境,就可以针对目标编译生成。
打开Tools -> Options...
选择Devices,点击Add..增加一个Generic Linux Device,然后Start Wizard,填入设备名字,网络地址以及用户名密码等。
完成后,会自动开始测试设备连接。
然后我们可以开始配置Build & Run,选择Qt Versions,添加一个Qt Version,选择我们之前编译好的Windows下的qmake:
然后添加一个Compiler,选择Compilers选项卡,Add.. 一个MinGW类型的编译器,选择<sysgcc>\Raspberry\bin\arm-linux-gnueabihf-g++.exe
添加一个CMake,<sysgcc>\Raspberry\bin\make.exe
好了,最后我们就需要配置出一个Kit,包含一个目标环境所需要的qmake,设备,CMake,以及配置文件。点击Kits选项卡:
- Device type:Generic Linux Device
- Device:选择你刚才新建的设备
- Sysroot:<sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot
- Compiler:选择新建的编译器
- Qt version:选择Raspberry Pi的Qt
- Qt mkspec:<sysgcc>\Raspberry\arm-linux-gnueabihf\sysroot\usr\local\qt5\mkspecs\devices\linux-rasp-pi2-g++
- CMake Tool:选择新建的CMake
保存新的Kit配置。
因为Qt Creator的Debugger GDB需要有Python支持,但是MinGW中提供的GDB均没有支持Python,所以我们目前无法指定Debugger,需要之后交叉编译一个Raspebrry Pi支持的GDB with Python才可以作为Debugger来调试。
3. 新建Qt for Raspberry Pi项目并编译测试
点击 File -> New File or Project,打开新建项目向导,选择Qt Widgets项目模板,填入项目名称,务必在Kit Selection中选择才新建的Kit环境。
完成代码后,我们可以通过左下侧的编译运行按钮直接编译输出到Raspberry Pi
目前我们只能使用
下一篇:适用于树莓派Raspberry Pi的嵌入式QT平台(三) -- 交叉编译Raspberry Pi版GDB with Python