Visual Studio C++ Project File CustomBuild Task: Filter Outp



我在Visual Studio 2019 C++项目文件(.vcxproj(中定义了一个自定义构建步骤,该文件生成.h.cc文件。 有一个名为">将输出添加到项目类型">的自定义构建工具选项,我可以在其中选择"C/C++ 标头">"C/C++编译器">之一。 有没有办法编辑生成的项目文件,以便将.cc文件添加为"C/C++ 编译器">,将.h文件添加为"C/C++ 标头">

我的解决方法是简单地从自定义构建工具输出列表中删除生成的.h文件。 该解决方法的缺点是,如果其中一个.h文件丢失或过时,构建将失败。 我希望有一个解决这个缺陷的解决方案。

下面说明了我在.vcxproj文件中尝试的内容:

<OutputItemType Condition="'%(Extension)'=='.cc'">ClCompile</OutputItemType>

不确定如何定义Custom Build Step.但自定义构建步骤并不是唯一的方法。

对于C++项目,msbuild 提供了自定义生成工具、自定义生成步骤、生成事件和自定义目标。您可以通过此脚本实现相同的要求:

<Target Name="CustomTarget" BeforeTargets="PrepareForBuild">
<Exec Command="xx.exe ..."/> <!--Call the tool.exe to generate files somewhere. We can save them in temp folder.--> 
<Copy SourceFiles="xxx" DestinationFolder="xxx"/> <!--Use copy task to copy the generated files to project folder-->
<ItemGroup>
<ClCompile Include="Path of Temp folder*.cc" />
</ItemGroup>
</Target>

看到这里,我检查了一些相关文件,确认OutputItemType是关于ProjectReference的事情。我不确定此语法是否支持其他项目。