适用于树莓派Raspberry Pi的嵌入式QT平台(三) -- 交叉编译 Raspberry Pi 版GDB with Python
上篇讲到“在Windows下用Qt Creator开发编译Raspberry Qt 5应用程序”,由于目前Qt Creator所支持的GDB需要有Python支持,但是目前MinGW中的GDB都是无Python支持的,所以我们需要自己下载GDB代码并且编译成针对Raspberry Pi支持Python的版本。
1. 准备工作
- 下载MinGW最新版本:https://sourceforge.net/projects/mingw/files/Installer/ 从sourceforge下载 mingw-get-setup.exe,这是一个MinGW软件包安装管理器,类似于Debian上的新得利包管理器,有一个GUI版本可以可视化的管理安装MinGW环境的软件包
- 从 Qt 站点下载 http://download.qt.io/development_releases/qtcreator/3.6/3.6.0-rc1/qt-creator-opensource-src-3.6.0-rc1.zip 下载Qt Creator 代码,里面包含了配置编译GDB的脚本。
- 从GNU站点下载GDB源码(推荐GDB 7.1.0):http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.xz
- 从 Qt 站点下载GDB所依赖的Python 2.7库:http://download.qt.io/development_releases/prebuilt/gdb/build-prerequisites/python.zip
- 从其他站点下载其他所依赖的库源码:
解压缩Qt Creator源码,放入C:\Download目录,并且将其他下载的库及代码放入 C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb\source (在gdb目录下新建一个source目录)
2. 配置编译环境
有人要说,为什么不用之前toolchain for Windows的MinGW32来编译,因为经过本人多次尝试,发现toolchain中的MinGW版本过低,有一个time.h的结构体声明bug导致我们GDB编译无法进行。所以我们需要更新到最新的MinGW版本来编译GDB
安装MinGW-get到C:\MinGW
完成后打开 C:\MinGW\bin\mingw-get.exe,选择 Basic Setup->勾选右侧列表中 mingw-developer-toolkit, mingw32-base,mingw32-gcc-g++以及msys-base软件包,点击菜单Installation->Apply Changes 完成软件包的安装。
安装软件完成后,打开 C:\MinGW\msys\1.0\msys.bat 进入MinGW shell环境。
3. 配置编译GDB with Python for Win/Linux/ARM
打开 C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb\Makefile.mingw 文件
在targets那一行添加Raspberry Pi的ABI:arm-linux-gnueabihf,然后保存文件。打开msys shell,进入目录 C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb,make这个Makefile.mingw开始编译:
注意:过程中可能会下载一些软件包,确保你的网络连接的稳定,有条件的可以FQ连上VPN。如果下载一直出现问题,则可以选择手动下载那些软件包放入source目录中。
当编译打包全部完成后(大概会花一个小时编译),你可以在 C:\Download\qt-creator-opensource-src-3.6.0-rc1\dist\gdb\qtcreator-gdb-7.10 找到编译好的GDB,并且也有一个打包好的 qtcreator-gdb-7.10-mingw32_nt-6.2-i686.tar.gz 在\dist\gdb目录下。
4. 在Qt Creator中配置并联机调试Qt for Raspberry Pi应用
打开Qt Creator,进入Tools->Options...->Build & Run->Debugger,添加一个Debugger,选择刚才编译出来的gdb.exe,如下图,保存后。
打开Kits,选择之前配置好的Rasspberry Pi的开发Kit,在Debugger下选择配置好的Debugger,点击OK保存关闭。
好了,至此,Qt Creator就可以使用
下一篇:利用VisualGDB搭建Vsiaul Studio的Qt for Raspberry Pi开发环境