我不認爲有簡單的步驟可循,這就是爲什麼外接存在,做所有的痛苦的任務。但是,它不應該太困難,只需要很長時間和繁瑣的維護。
基本上有兩套工作要做,設置你的項目文件,並設置所有文件的所有自定義生成步驟。
讓我們從項目文件(vcproj)開始。我將假設我們將把所有生成的文件放在一個名爲「GeneratedFiles」的目錄中,該目錄位於與.vcproj文件相同的目錄中。
當您的項目打開屬性頁面並設置以下設置。
調試/環境:
PATH = $(QTDIR)\ BIN;「$(QTDIR)\ BIN; $(PATH)
C/C++ /普通/附加包含目錄:
C/C++ /預處理器:
- QT_LARGEFILE_SUPPORT
- QT_THREAD_SUPPORT
- QT_PLUGIN,如果你想小部件出口到
- QT_DLL/QT_NODLL取決於是否採用共享式設計QDESIGNER_EXPORT_WIDGETS或靜態Qt庫
- QT_NO_DEBUG/QT_DEBUG其中一個或另一個取決於w通過釋放或調試的Qt
- QT_CORE_LIB論是你需要下列內容之一的Qt的每個DLL,你是依賴於
- QT_GUI_LIB
鏈接器/一般/附加庫的依賴:
加$(QTDIR)\ lib添加到您已有的任何列表中。
鏈接器/輸入/附加依賴:
添加任何你需要的Qt庫。
而這幾乎是它的項目文件。其中大部分主要取決於您使用的Qt的哪些部分。
現在,到了困難的部分。配置所有文件以正確構建。首先要做的是設置過濾器來組織你的項目。除了正常的包括和源過濾器,你將需要:
- 表單文件 - 這是所有的.ui文件應該是
- 生成的文件 - 這包含2個過濾器調試和發佈
- 資源文件 - 這是任何.qrc和圖像文件應該在的地方。
現在開始添加你的文件到項目中。您現在不會有任何生成的文件要添加,只是您的常規源文件,包括ui和qrc文件。
然後添加您的自定義生成步驟。需要自定義構建步驟的文件都是您的ui和qrc文件,以及包含Q_OBJECT宏的所有.h文件。對於其中的每一個打開屬性頁面並選擇「自定義生成步驟/常規」。
對於UI文件:
- 命令行: 「\ GeneratedFiles \ UI _ $(InputName).H」 「$(QTDIR)\ BIN \ uic.exe」 -o 「$(InputPath) 「
- 描述:Uic'ing $(InputFileName)...
- 輸出:」。\ GeneratedFiles \ ui _ $(InputName)「。H」
- 附加依賴:$(QTDIR)\ BIN \ uic.exe
對於QRC文件:
- 命令行: 「$(QTDIR)\ BIN \ rcc.exe」 - 命名 「$(InputName)」 - 無 - 壓縮 「$(InputPath)」 -o \ GeneratedFiles \ QRC _ $(InputName)的.cpp
- 說明:Rcc'ing $(查找inputfilename)...
- 輸出:。\ GeneratedFiles \ qrc _ $(InputName).cpp
- 其他依賴關係:$(InputPath),然後是qrc文件中所有 圖像的列表。
對於.h文件:
這是很難的,因爲調試不同的命令行,然後釋放,以及32位和64位,因爲它是依賴於您的項目設置。我會告訴你我的一件事,但最好的辦法是根據你的C/C++命令行在記事本中建立一個記事本。
- 命令行: 「$(QTDIR)\ BIN \ moc.exe」 -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_PLUGIN -DQDESIGNER_EXPORT_WIDGETS -DQT_CORE_LIB -DQT_GUI_LIB -DWIN64 -D_DEBUG -D_VC80_UPGRADE = 0x0710 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_WINDLL 「-I。\ GeneratedFiles」「-I $(QTDIR)\ include」「-I。\ GeneratedFiles \ $(ConfigurationName)」。 (QTDIR)\ include(包括\ QtIR)\ include(包括\ QtIR)\ include(包括\ QtDIR)\包含\ QtDesigner「-I $(QTDIR)\ include \ QtCore」 「$(InputPath)」 -o
- 說明 「\ GeneratedFiles \ $(ConfigurationName)\ MOC _ $(InputName)的.cpp」:Moc'ing $(查找inputfilename)...
- 輸出:」 \ GeneratedFiles \ $(ConfigurationName)\ MOC _ $(InputName)的.cpp」
- 附加依賴: 「$(QTDIR)\ BIN \ moc.exe」; $(InputPath)
一旦你設置的所有自定義構建步驟,實際上只剩下一件事,添加所有生成的f iles到項目。但是,到目前爲止,它們不存在於磁盤上,因此請測試您的自定義構建步驟並嘗試構建項目。它不會完成,但沒關係。主要的是它應該生成你需要的所有文件。請記住,生成的moc _ *。cpp文件需要爲調試和發佈生成,因此您必須執行兩次。
添加所有qrc_.cpp和ui_.h文件直接下在你的項目中的「生成的文件」過濾器。然後將「生成的文件\調試」過濾器下的所有Debug \ moc_.cpp文件以及您的「生成的文件\版本」過濾器下的Release \ moc_.cpp文件添加。
最後,在你的「生成的文件\調試」過濾一切都應該從發行版本排除在外,並在「生成的文件\發佈」過濾一切都應該從調試版本被排除在外。
而我認爲就是這樣。我從未說過這不會是痛苦的。真正的挑戰是記住在創建新文件時添加自定義構建步驟等。完成這一切後,天堂禁止你需要更改任何項目設置。
它幾乎讓你想要掏出700美元購買專業版,只是爲了避免這一切。
來源
2011-11-10 23:42:14
Liz
哇,非常感謝所有這一切,我還沒有設法找到所有的信息。儘管如此,這意味着它不值得使用QtSDK,除非你擁有帶插件的完整Visual Studio。這是沒有太多的工作! – oggmonster