0

我在生成.h.cc文件的 Visual Studio 2019 C++ 项目文件 ( .vcxproj ) 中定义了一个自定义构建步骤。有一个名为"Add Outputs to Item Type"的自定义构建工具选项,我可以在其中选择"C/C++ header""C/C++ compiler"之一。是否有某种方法可以编辑生成的项目文件,以便将.cc文件添加为“C/C++ 编译器”并将.h文件添加为“C/C++ 标头”

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

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

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

1 回答 1

1

不确定您如何定义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。我不确定这种语法是否支持其他项目。

于 2020-02-11T13:13:13.003 回答