我們有一個使用自定義對象關係映射系統的C++項目,其中表由.tbl文件定義。然後通過代碼生成器運行這些代碼生成器,爲每個生成.h和.cpp文件。Visual Studio中的自定義構建規則,帶有多個輸出
我試圖讓一個自定義生成規則爲這方面的工作,在Visual Studio 2008年和2010年
這是我到目前爲止:
<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
Name="z_dbbld"
Version="8.00"
>
<Rules>
<CustomBuildRule
Name="z_dbbld"
DisplayName="z_dbbld"
CommandLine="$(SolutionDir)\tools\z_dbbld $(InputName)"
Outputs="$(InputName).cpp"
FileExtensions="*.tbl"
ExecutionDescription="z_dbbld $(InputName)"
>
<Properties>
</Properties>
</CustomBuildRule>
</Rules>
</VisualStudioToolFile>
的問題是依賴。當我在乾淨的簽出上運行構建(不存在任何文件)時,對於由此規則生成的.h文件,我得到「無法打開包含文件」錯誤。
我試着改變輸出到「$(InputName).h」,我仍然得到錯誤。
現在就是當代碼生成器運行時創建這些文件。如果我再次編譯,我沒有錯誤,因爲所有文件都是在第一遍中創建的。但是,它使得從新的結賬做起乾淨,自動化的生成不起作用。
任何想法?
我將輸出文件添加到構建的主要部分。我的問題是,如果我將.h和.cpp添加到構建中,並且有一條規則說它可以從.tbl生成.h,它會抱怨它找不到.cpp,如果我有規則說它可以從.tbl生成一個.cpp,它說它找不到.h。由規則包裝的工具同時生成,但我似乎無法弄清楚如何配置一個規則來告訴它。 –
從''的文檔中,聽起來您可以列出以分號分隔的多個文件。 –
sblom