上篇講到“在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開始編譯:

注意:過程中可能會下載一些軟件包,確保你的網絡連接的穩定,有條件的可以翻牆連上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開發環境
