【发布时间】:2020-09-27 03:12:23
【问题描述】:
我想在我的项目中使用 C++17,而不必在开始新项目时总是在属性中更改它。这可能吗?
谢谢!
【问题讨论】:
标签: c++ visual-c++ visual-studio-2019 visual-c++-2019
我想在我的项目中使用 C++17,而不必在开始新项目时总是在属性中更改它。这可能吗?
谢谢!
【问题讨论】:
标签: c++ visual-c++ visual-studio-2019 visual-c++-2019
要仅为新项目更改默认值,请参阅How to change the default C++ template file?。
要更改所有 C++ 项目的默认值,请在$(UserRootDir) 中查找以下两个.props 文件,通常是C:\Users\<user name>\AppData\Local\Microsoft\MSBuild\v4.0。
Microsoft.Cpp.Win32.user.props
Microsoft.Cpp.x64.user.props
然后在Project/ItemDefinitionGroup/ClCompile下插入以下内容。
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
如果.props 文件不存在并且您必须从头开始创建它们,则每个文件都将具有以下完整内容。
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
</Project>
有关属性文件的更多详细信息,请参阅我的其他答案 here,包括在哪里可以找到每台机器的默认值($(VCTargets)),而不是每用户的默认值($(UserRootDir))。
【讨论】:
.props 文件(无论是通过 GUI 还是直接)会更改 所有 项目的默认设置,过去和未来,这些项目没有明确定义自己的 /std 一致性级别.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160找到了props文件
$(VCTargetsPath),您可以使用它来更改每台机器的默认值,而不是每用户的默认值。
编辑视图下的属性表 -> 其他窗口 -> 属性管理器接下来打开项目树,然后打开您要更改的平台。
这里的设置默认继承对应平台的所有项目配置,所以右键单击“Microsoft.Cpp..User”节点,然后转到C/C++ -> 语言,然后设置你想要的语言标准点击确定。
您可能需要右键单击项目节点并选择保存,我不确定这是否真的需要。
【讨论】:
您可以通过设置(left down corner) -> command palette.. -> c/c++ Edit configuration(UI) 来做到这一点。它将带您进入 IntelliSense 配置。从那里您可以更改 C 和 C++ 的版本。
【讨论】: