我学会了如何编辑我的 .vcxproj 文件来编译一些带有 /Za 的文件和一些不编译的文件。
但是,由于我正在向 .vcxproj 文件添加元素,因此我在 IDE 中设置的过滤器似乎变得混乱,而 .vcxproj.filters 文件正在变成更大的三重、四重、不起作用的混乱每次保存时都会写入更多副本的副本。
如何设置编译器选项(如 /Za)以自动应用于所有新文件,但不应用于某些旧文件,并且过滤器仍能正常工作?
以下是我添加到 .vcxproj 文件中的内容的精简示例:
<ItemGroup>
<CLCompile Include="**\*.cpp;" Exclude="BufferTrio.cpp;GraphicsFacade.cpp;">
<AdditionalOptions>/Za %(AdditionalOptions)</AdditionalOptions>
</CLCompile>
<CLCompile Include="BufferTrio.cpp;GraphicsFacade.cpp;">
<AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
</CLCompile>
</ItemGroup>
<ItemGroup>
<None Include="fragmentShader.glsl" />
<None Include="vertexShader.glsl" />
</ItemGroup>
<ItemGroup>
<Text Include="Notes.txt" />
<Text Include="Todo.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="BufferTrio.h" />
<ClInclude Include="Exceptions.h" />
<ClInclude Include="FileUtils.h" />
<ClInclude Include="GraphicsFacade.h" />
</ItemGroup>
奇怪的是,这会将所有 .h 文件放在正确的过滤器中,但将所有 cpp/c 文件放在项目的根目录中,在所有过滤器之外。
我在 IDE 或 .vcxproj.filters 文件中所做的任何事情都不会产生影响,这不仅会在下次保存项目时被覆盖。