1. 程式人生 > >適用於樹莓派Raspberry Pi的嵌入式QT平臺(三) -- 交叉編譯 Raspberry Pi 版GDB with Python

適用於樹莓派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. 準備工作

解壓縮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就可以使用按鈕進行聯機除錯,可以設定斷點,檢視執行時記憶體,執行緒狀態。GDB會向Raspberry Pi推送一個gdbserver,並且聯合本地的GDB進行除錯。下面面是我除錯一個Qt for Raspberry Pi應用時的截圖:

下一篇:利用VisualGDB搭建Vsiaul Studio的Qt for Raspberry Pi開發環境