[VC++][Qt][GUI]在Visual Studio 2012使用Qt 4.8.3
Qt目前最新版本為5.1.1,而官網上亦有提供"Visual Studio Add-in 1.2.2 for Qt5"的VS2012 Plug-in,然而若像我一樣堅持要在Visual Studio 2012使用Qt 4.8.3要怎麼辦呢?
前言
Qt是自由且開放原始碼的跨平台C++應用程式開發框架。廣泛用於開發GUI程式,也可用於開發非GUI程式,比如控制台工具和伺服器。Qt使用於OPIE、Skype、VLC media player、Adobe Photoshop Elements、VirtualBox 與 Mathematica以及被Autodesk、歐洲太空總署、夢工廠、Google、HP、KDE、盧卡斯影業、西門子公司、富豪集團、華特迪士尼動畫製作公司、三星集團、飛利浦、Panasonic所使用。
Qt目前最新版本為5.1.1,而官網上亦有提供"Visual Studio Add-in 1.2.2 for Qt5"的VS2012 Plug-in,然而若像我一樣堅持要在Visual Studio 2012使用Qt 4.8.3要怎麼辦呢?
安裝Qt 4.8.3
請到Qt官網下載頁面並安裝"qt-win-opensource-4.8.3-vs2010.exe"
安裝VS2012 Plug-in
首先,還是必須安裝Qt5版本的VS Plug-in,因為當你強制要安裝Qt4版本的VS Plug-in時,一啟動就會出現以下畫面:
所以請下載並安裝"Visual Studio Add-in 1.2.2 for Qt5"
開始使用Qt ?
一切安裝好後,你應該可以看到在開始清單中多了一個"Visual Studio 2012 with Qt 4.8.3",由此bat檔開啟VS 2012
(該檔主要是設定一些Qt的環境變數,應該也可以直接在Windows環境變數設定好,就不用透過此bat檔開啟VS)
請在你的工具列上找到[QT5]->[Qt Options]設定Qt library位置與版本名稱:
就在開啟範例專案,編譯後會發現遇到連結錯誤,所以我們需要...
重新編譯Qt
請到Qt目錄下,先進行以下幾個修改步驟:
1. 將src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h取代為此檔案
2. 將src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.cpp的第325與327行,不正常中文引號,修改為\"
接著使用"適用於 VS2012 的開發人員命令提示字元"移到Qt目錄下進行以下操作:
configure -mp -opensource -nomake demos -nomake examples -platform win32-msvc2010
nmake
md temp
move lib*.pdb temp
nmake clean
move temp*.pdb lib
可以將以上命令寫成bat檔後,以"適用於 VS2012 的開發人員命令提示字元"呼叫執行
因為此段build的時間大約要2小時以上(端看電腦性能),所以寫成bat讓它自己接著跑!!
終於可以開心使用Qt
在經過好一番苦功後,終於剛剛的範例專案,編譯連結後Run了起來,Qt 4.8與VS2010的束縛被解除了!!
但是,有以下幾點還是必須注意一下:
1. 透過VS開新的Qt專案時,由於該Plug-in是for Qt5的,所以專案範本的寫法也是Qt5的用法,編譯不過到處紅蚯蚓是正常現象
2. 有可能Qt Designer會在編譯Qt後無法開啟,此時請到Qt目錄下tools找到該專案,以VS開起來重新Build即可解決
相關資源與參考資料
Qt4.8.3在vs2012下的編譯
http://www.stardrad.com/blog/qt4-8-3%E5%9C%A8vs2012%E4%B8%8B%E7%9A%84%E7%BC%96%E8%AF%91/
良葛格 - Qt4 Gossip
http://openhome.cc/Gossip/Qt4Gossip/