標籤:
自己編譯好了 QT 5.6.0 Alpha 版本後,如何使用 VS2015 建立 QT 工程呢?
1、安裝外掛程式,安裝失敗!因為 VS2015 不再支援 ADDIN , 所以 QT-VS-ADDIN 只能支援到 VS2013
2、使用 QtCreator , 這個不習慣使用,而且速度慢
3、自己動手
第一個想法是在編譯工程之前,遍曆工程檔案找出需要的檔案,使用 uic、moc 編譯出對應的檔案,然後就可以正常編譯了
但是該如何做呢?碰巧想起 CUDA 的安裝教程裡面就有關於 VS2010 的自訂檔案類型如何編譯的說明,因此找到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations 目錄,裡面有 MASM 的自訂編譯過程設定檔
MASM.props MASM.targets MASM.xml 三個檔案
因此照做,配置了 UI 檔案如何產生 ui_*.h , ts 如何產生 *.qm ,以及 *.h 產生 moc_*.h,這些設定檔參考下文
在“方案總管”中的工程上右鍵,選擇“組建相依性”/“產生自訂”列表中可以看到 QUI、QMO、QTS這三項,選中這三項,點擊確定按鈕
然後添加 ui 或 ts 檔案到工程中,這些檔案就可以在編譯先行編譯頭之前進行 uic 或者 lrelease 編譯了,
對於 .h 檔案,需要手工在檔案的屬性裡面修改“項類型”為“QT MetaObject Header”,這不影響開啟標頭檔進行編輯,識別類型定義,僅僅是編譯時間不再是普通標頭檔,而是可以進行 moc 的檔案,因此只需要在類型中有 Q_OBJECT 定義的標頭檔修改為“QT MetaObject Header”;
編譯工程時,首先編譯 ui 、ts和需要的標頭檔,然後是先行編譯頭,然後是工程中的檔案
對於工程中的檔案需要注意,例如 在 AppOutput.cpp 檔案中,需要
#include "AppOutput.h"#include "ui_AppOutput.h"#include "moc_AppOutput.h"
如果有 ui 檔案,那麼就需要第二行,如果標頭檔中有 Q_OBJECT ,那麼就需要第三行
編譯,串連,OK,不需要外掛程式也能正常編譯 QT 工程了;
需要注意的是,需要在工程檔案所在的位置建立一個目錄 .GenerateFiles ,用來存放產生的 ui_*.h 和 moc_*.h 以及 qm 檔案
設定檔下載串連:http://files.cnblogs.com/files/WonKerr/BuildCustomizations.zip
或者直接下載
Visual Studio 2015 自訂檔案編譯