Visual Studio 2015 自定義文件編譯


自己編譯好了 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

或者直接下載

備注:已經更新了自定義生成工具的配置文件,不需要手工創建 .GenerateFiles 目錄了;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM