2012-08-14 76 views
0

我的自定義下建立使用Q_OBJECT每頭文件的屬性:Visual Studio 2005中的自定義生成Qt的

Command Line: $(THIRDPARTY_DIR)\qt\4.7.0\win32-vc10\bin\moc.exe $(InputFileName) -o moc\$(ConfigurationName)\moc_$(InputName).cpp 
Description: ################### moc'ing $(InputFileName) 
Outputs: moc\$(ConfigurationName)\moc_$(InputName).cpp 

這會產生必要的MOC文件。我現在想要讓Visual Studio編譯並鏈接到我的其他源文件。目前我在任何文件中使用 #include "moc\{Release OR Debug}\moc_Whatever.cpp"#語句強制編譯和鏈接。顯然我必須不斷改變我的#include根據調試或發佈構建(我不能丟棄$(ConfiguarationName)在上面的moc文件生成的原因)。另外我不喜歡爲了編譯和鏈接的目的而在源文件中編寫這個#include的想法。

是否有任何構建步驟屬性中的任何地方,我可以提到將來會生成什麼文件,並且在它們可用時編譯和鏈接它們(VS2005)?

(我不能使用QtPlugin現在)

回答

0

您只需將這些文件添加到項目中,我的項目結構通常看起來像這樣(在Visual Studio解決方案資源管理器):

Solution 
    | 
    +- Project1 
      | 
      +- Generated Files 
      +- Header Files 
      +- Source Files 

在生成的文件,我將這兩個參考,調試和發佈moc_xxx.cpp和qrc_xxx.cpp文件包含在內。對於調試文件,您需要爲發佈引用設置「從生成排除」爲true,反之亦然。

這與插件所做的幾乎相同。

+0

謝謝!只是還有一個問題:我必須首先構建能夠給出鏈接器錯誤的項目,但到那時moc文件已經生成。然後我在我創建的'GeneratedFiles'過濾器中添加現有項目,然後重新運行構建過程以便成功構建。對於moc'ing我使用VS變量像'$(InputFileName)'等,所以我只是複製粘貼自定義構建從一個'.h'文件到另一個。有沒有一個過程來自動生成的moc文件的編譯和鏈接,而不是像我在做的那樣手動添加它們? – ustulation 2012-08-16 06:44:59

+0

其實這正是插件的功能!你爲什麼不能使用它? – Jens 2012-08-16 12:05:40

相關問題