1. 程式人生 > 其它 >windows 下使用 mingw編譯器 除錯時 無法跟進原始碼

windows 下使用 mingw編譯器 除錯時 無法跟進原始碼

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

參考文章如下:

https://doc-snapshots.qt.io/qt5-5.15/windows-building.html