【问题标题】:How to change default C++ language standard in Visual Studio 2019?如何更改 Visual Studio 2019 中的默认 C++ 语言标准?
【发布时间】:2020-09-27 03:12:23
【问题描述】:

我想在我的项目中使用 C++17,而不必在开始新项目时总是在属性中更改它。这可能吗?

谢谢!

【问题讨论】:

    标签: c++ visual-c++ visual-studio-2019 visual-c++-2019


    【解决方案1】:

    要仅为项目更改默认值,请参阅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))。

    【讨论】:

    • 虽然这个答案看起来非常彻底(链接“如何更改默认 C++ 模板文件?”后面的答案也是如此),但它也有点让人不知所措。如果我会继续使用 VS,我可能会稍后检查它,但现在 @SoroneHaetir 的答案相当简单且有效。
    • @Rintala 当然,那是你的决定,最终这是一个偏好问题。请记住,编辑 .props 文件(无论是通过 GUI 还是直接)会更改 所有 项目的默认设置,过去和未来,这些项目没有明确定义自己的 /std 一致性级别.
    • 幸好你指出了这一点。目前,过去的项目属性是否也发生变化并不重要,但现在我对我刚刚所做的事情有了更多了解:) 我只是将编程作为一种爱好来学习,所有这些臃肿的 IDE 都让人筋疲力尽。事实上,我刚刚找到了 onlinegdb.com,出于我的目的,它更快,并且使用与 VS Code 相同的键盘快捷键(我在 VS IDE 中遇到过的问题)无论如何,我相信其他人会发现你的回答很有帮助!
    • 我在C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160找到了props文件
    • @cho_uc 那是$(VCTargetsPath),您可以使用它来更改每台机器的默认值,而不是每用户的默认值。
    【解决方案2】:

    编辑视图下的属性表 -> 其他窗口 -> 属性管理器接下来打开项目树,然后打开您要更改的平台。

    这里的设置默认继承对应平台的所有项目配置,所以右键单击“Microsoft.Cpp..User”节点,然后转到C/C++ -> 语言,然后设置你想要的语言标准点击确定。

    您可能需要右键单击项目节点并选择保存,我不确定这是否真的需要。

    【讨论】:

    • 我确实右键单击项目名称并选择保存,但是当创建一个新项目(并因此关闭前一个项目)时,VS 打开了一个弹出窗口,说“一个或多个继承的属性表尚未保存。保存现在”,所以我认为这是关键的一步。现在工作很漂亮!谢谢!
    【解决方案3】:

    您可以通过设置(left down corner) -&gt; command palette.. -&gt; c/c++ Edit configuration(UI) 来做到这一点。它将带您进入 IntelliSense 配置。从那里您可以更改 C 和 C++ 的版本。

    【讨论】:

      猜你喜欢
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-04-08
      • 1970-01-01
      • 2020-10-04
      • 2017-11-25
      • 2020-10-19
      • 2023-04-04
      相关资源
      最近更新 更多