windows 下使用 mingw編譯器 調試時 無法跟進源碼
最近在公司使用QT 開發,官方在線下載的 安裝的QT mingw 都是沒有debug版本的 由於沒有debug版本動態庫
所以你調試的時候壓根就無法跟進QT源代碼里,那么找問題的時候 大部分都是跟到匯編代碼了。
由於剛來公司不久,人微言輕。我建議統一使用msvc編譯 得到拒絕后 沒有辦法只能重新編譯mingw debug版本 了。
下面記錄下使用mingw 編譯debug 版本步驟
1、 首先准備環境要做好
Perl version 5.12
Python version 2.7
Ruby version 1.9.3
這些東西要先安裝好
請自行百度 安裝
2、QT環境已經安裝好了
打開QT5.15.2(Mingw8.1.0 64-bit)
命令行工具
3、在命令行工具中 切換到 你QT安裝的目錄\版本號\src
下
執行如下代碼
configure -debug -platform win32-g++ -opensource -confirm-license -opengl desktop -prefix "你的qt安裝目錄/qt版本號"
4、開始構建
mingw32-make
可能會報如下錯誤
cannot find -lpnp_basictoolsd
collect2.exe: error: ld returned 1 exit status
你QT安裝的目錄\版本\Src\qtbase\examples\widgets\tools\plugandpaint 下的 pro 文件 編譯一個 debug 版本
繼續編譯
mingw32-make
繼續報錯 接着解決
C:\Users\HotPixel-2\AppData\Local\Microsoft\WindowsApps\python.exe D:/Qt/5.15.2/Src/qtdeclarative/src/3rdparty/masm/yarr/create_regex_tables > .generated\debug\RegExpJitTables.h
mingw32-make[4]: *** [Makefile.Debug:1059: .generated/debug/RegExpJitTables.h] Error 9009
找到RegExpJitTables.h
生成的所在目錄 自己手動執行
python.exe D:/Qt/5.15.2/Src/qtdeclarative/src/3rdparty/masm/yarr/create_regex_tables > RegExpJitTables.h
繼續編譯
mingw32-make
5、如果構建過程沒有錯誤執行 安裝命令即可
mingw32-make install
6、安裝完以后 執行aaa
命令時 設置的-prefix
參數的目錄下 會多出這些文件夾
將這些文件夾 復制到 你QT 安裝目錄/版本號/ 目錄下新建一個 mingw84_64_debug
文件夾
如下圖目錄結構
7、打開QT creator 菜單 - 工具-選項-kits
添加你編譯好的這個mingw 64 debug 版本環境
這個時候在選中 Kits 下的 Kits 項 clone 一份 mingw64 默認的 改下名稱 和 QT版本
到此即可使用mingw 編譯器 完美調試 跟進QT 源代碼 定位問題了
-
打開你的項目 選擇你新增加的 mingw 64 debug 版本的環境
-
看看效果
原來這段線程池的start 函數我 按F11 是怎么也進不去的
現在按下F11完美進入
當然QT 需要設置調試源碼的路徑步驟也不能少
參考文章如下:
https://doc-snapshots.qt.io/qt5-5.15/windows-building.html