1. 程式人生 > >vs2012編譯和除錯QT工程的那些坑

vs2012編譯和除錯QT工程的那些坑

    這兩天版本交付了,在空餘時間寫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/