2017-07-17 34 views
0

Visual Studio 2013,qt 4.7源代碼之後的Visual Studio Moc'ing標題

我們最近注意到一些新功能並未出現在我們項目的發佈版本中。事實證明,項目中的頭文件在之後被編譯爲,源被編譯並生成可執行文件,例如,生成日誌看起來是這樣的:

> Using cl 
2> app.cpp 
2> newDialog.cpp 
2> moc_newDialog.cpp 
2> Generating Code... 
2> viewer.vcxproj -> PATHTOBUILDLOCATION\output\x86_Debug\\viewer.exe 

然後

2> Moc'ing newDialog.h... 
2>   1 file(s) copied. 

我們使用Qt插件爲Visual Studio生成自動頭商務部命令;像所有其他項目一樣,但我們之前沒有注意到這一點。 有沒有辦法強制標題先被moc'd?

+0

在構建開始之前,應該調用Qt的moc工具**。檢查它的配置。它是在您的項目的預生成還是生成後事件中? – vahancho

+0

在visual studio中,moc是基於每個文件調用的,作爲每個頭文件上的自定義構建設置。似乎應該有辦法強制這些在構建之前進行處理,但我看不到它! – mike

+0

我知道,但是發佈後的活動來自哪裏?正如你所說,在你的viewer.exe應用程序建立後,它就會出現。 – vahancho

回答

0

我的同事找到了原因。不知怎的,(我們不知道如何或爲何),對於在這樣的項目文件中的每個配置一條線:

<CustomBuildAfterTargets>Build</CustomBuildAfterTargets> 

這是造成問題的原因。刪除這個已經解決了這個問題。如果有人知道這可能是通過visual studio設置的,請評論!

相關問題