vs2012編譯和除錯QT工程的那些坑
阿新 • • 發佈:2019-02-03
這兩天版本交付了,在空餘時間寫pngquant指令碼,發現呼叫命令列生成的效果不如用GUI工具生成的效果好,讓我很詫異。
好在那個GUI工具的原始碼託管在github上,我去下載來一看,裡面的基礎類全是Q打頭的,想來就是著名的Qt框架的程式碼了。
於是去QT官網下載了各種東西。
首先在下載可能會疑惑,這麼多版本用哪個好?雖然他們都是start free,也就是可以試用的,但其實直接點最後哪個Community的開源版本就好了。即
http://www.qt.io/download-open-source/#section-3
因為我比較熟悉VS,所以下載的是
Qt 5.4.1 for Windows 32-bit (VS 2012, OpenGL, 644 MB) 網上有文章說由於外掛是32位的,如果下載64位的版本會出問題,由於我目前在用vs2012,只有32位的版本:)
這個裡面已經自帶Qt Creator了,就不用下載安裝下面那個Qt Creator了
然後還要下載個Visual Studio Add-in。
我下載的是 Visual Studio Add-in 1.2.4 for Qt5 (156 MB)
然後都下載安裝完後,第一個坑出現了。
1. Visual Studio Add-in 1.2.4 在 vs2012 無法載入
一開啟vs會提示外掛啟動失敗:
The Add-in 'Qt Add-in 1.2.4' failed to load or caused an exception.
Error Message: The system cannot find the file specified.
Error number: 80070002
https://bugreports.qt.io/browse/QTVSADDINBUG-392
網上稍微找了下,沒找到針對性的處理方案(比如究竟是少了哪個檔案),我只好去歷史版本 http://download.qt.io/archive/vsaddin/ 裡面下載 1.2.3
但杯具的事,貌似1.2.3安裝完成後依然有這個問題,我只好再去下載1.2.2. 由於網上有教程就是基於vs2012和1.2.2的,有理由相信1.2.2是好的,下載下來果然可以用了。
然後按照教程(http://www.cnblogs.com/li-peng/p/3644630.html)開始配置,然後順利編譯執行起來了,為了方便查詢相關程式碼,我得斷點除錯下,然後第二個問題又出現了
2. Qt工程無法除錯
繼續google了下,Qt Creator選項中的偵錯程式是空的。於是按照搜尋到的解決方案,去下載了M$的WDK https://msdn.microsoft.com/en-us/windows/hardware/hh852365
安裝完成後,Qt Creator中的偵錯程式會自動檢測到cdb,這樣就能順利除錯了。
參:
a) https://bugreports.qt.io/browse/QTVSADDINBUG-392
b) https://forum.qt.io/topic/35856/qt-5-2-visual-studio-2012-debugging-problem/
好在那個GUI工具的原始碼託管在github上,我去下載來一看,裡面的基礎類全是Q打頭的,想來就是著名的Qt框架的程式碼了。
於是去QT官網下載了各種東西。
首先在下載可能會疑惑,這麼多版本用哪個好?雖然他們都是start free,也就是可以試用的,但其實直接點最後哪個Community的開源版本就好了。即
http://www.qt.io/download-open-source/#section-3
因為我比較熟悉VS,所以下載的是
Qt 5.4.1 for Windows 32-bit (VS 2012, OpenGL, 644 MB) 網上有文章說由於外掛是32位的,如果下載64位的版本會出問題,由於我目前在用vs2012,只有32位的版本:)
這個裡面已經自帶Qt Creator了,就不用下載安裝下面那個Qt Creator了
然後還要下載個Visual Studio Add-in。
我下載的是 Visual Studio Add-in 1.2.4 for Qt5 (156 MB)
然後都下載安裝完後,第一個坑出現了。
1. Visual Studio Add-in 1.2.4 在 vs2012 無法載入
一開啟vs會提示外掛啟動失敗:
The Add-in 'Qt Add-in 1.2.4' failed to load or caused an exception.
Error Message: The system cannot find the file specified.
Error number: 80070002
https://bugreports.qt.io/browse/QTVSADDINBUG-392
網上稍微找了下,沒找到針對性的處理方案(比如究竟是少了哪個檔案),我只好去歷史版本 http://download.qt.io/archive/vsaddin/ 裡面下載 1.2.3
但杯具的事,貌似1.2.3安裝完成後依然有這個問題,我只好再去下載1.2.2. 由於網上有教程就是基於vs2012和1.2.2的,有理由相信1.2.2是好的,下載下來果然可以用了。
然後按照教程(http://www.cnblogs.com/li-peng/p/3644630.html)開始配置,然後順利編譯執行起來了,為了方便查詢相關程式碼,我得斷點除錯下,然後第二個問題又出現了
2. Qt工程無法除錯
繼續google了下,Qt Creator選項中的偵錯程式是空的。於是按照搜尋到的解決方案,去下載了M$的WDK https://msdn.microsoft.com/en-us/windows/hardware/hh852365
安裝完成後,Qt Creator中的偵錯程式會自動檢測到cdb,這樣就能順利除錯了。
參:
a) https://bugreports.qt.io/browse/QTVSADDINBUG-392
b) https://forum.qt.io/topic/35856/qt-5-2-visual-studio-2012-debugging-problem/