【问题标题】:Command line warning D9035: option 'Gm' has been deprecated and will be removed in a future release命令行警告 D9035:选项“Gm”已被弃用,将在未来版本中删除
【发布时间】:2019-04-28 20:04:40
【问题描述】:

在使用 Visual Studio 2017 最新更新 15.9.2 构建我的项目时,我收到警告消息“cl : Command line warning D9035: option 'Gm' has been deprecated and will be removed”。如何解决此警告?

【问题讨论】:

    标签: visual-studio-2017 cl


    【解决方案1】:

    Properties > C\C++ > Code Generation > Enable Minimal Rebuild: DELETE value - 并且没有警告。

    【讨论】:

    • @Ashish:在更改值之前,您是否确保已在项目的属性页面上选择了“所有配置”和“所有平台”...?
    【解决方案2】:

    Project > Properties > Configuration Properties > C\C++ > Code Generation > 将Enable Minimal Rebuild设置为no,就没有警告了。

    【讨论】:

    • 它没有解决我的问题
    • @AshishRathi:将其设置为“bold no”会添加选项/Gm-。您想完全删除该选项(“从父级继承”),并且不应该有一个父级具有/Gm/Gm-
    【解决方案3】:

    只需将其添加到您已弃用的函数上方

    #pragma warning (disable : 4996);
    

    例子

    #pragma warning (disable : 4996);
    your_deprecated_function(); 
    

    【讨论】:

      【解决方案4】:

      UI 也不适合我。在 .vcxproj 文件搜索中:“MinimalRebuild”我在 Debug|Win32 下错过了第二个

      【讨论】:

      • 要对此进行扩展,这很可能是由于没有从项目设置窗口的下拉列表中选择“所有配置”选项。您可能已经知道这一点,但只是提及它以防其他人想知道您为什么必须进入项目文件源。
      【解决方案5】:

      尝试为Enable Minimal Rebuild 选项选择<inherit from parent or project defaults>(在C/C++ > Code Generation 下)。在此之后,该选项应以粗体显示 No (/Gm-)not。确保为您的项目(解决方案中可能有多个项目)以及它们继承的所有属性页执行此操作。

      我在使用 Visual Studio 2019 时遇到了同样的问题,最终问题出在我在同一解决方案中的第二个项目中,该项目的选项设置为 Yes (/Gm)

      【讨论】:

      • 对我来说,每当我为Enable Minimal Rebuild 选项设置<inherit from parent or project defaults> 时,Visual Studio 都会将此设置为Yes (/Gm) 以用于Debug|x64。但是对于Release|x64,它将按预期将其设置为No (/Gm)。我在 .vcxproj 中将此跟踪到 Project/PropertyGroup/UseDebugLibraries。删除该节点(这不是“正确”的做法),使Enable Minimal Rebuild 的默认值为No (/Gm-)
      【解决方案6】:

      也发生在我身上。没有设法通过 UI 修复它。 最后,我在所有项目文件中搜索了“MinimalRebuild”并手动将其删除 - 这很有帮助

      【讨论】:

      • 我也遇到过同样的问题。
      • 这是为我解决问题的唯一方法。
      • 这对我不起作用(Visual Studio 2017)。手动删除项目文件中的所有“MinimalRebuild”标签,仍然看到警告。
      【解决方案7】:

      根据documentation

      您可以安全地从您的项目中删除此选项。

      【讨论】:

      • 感谢文档,我已根据文档修改了“启用最小重建”属性,但仍然收到相同的警告?
      • 您使用的是哪种 VCXPROJ?您使用的是 Makefile 还是 Visual Studio 构建版本?
      • @ChuckWalbourn 我正在使用 Visual Studio 构建版本
      • 这个选项可以在特定文件上设置,所以检查编译显示哪个文件警告
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2021-02-23
      • 2021-04-12
      • 1970-01-01
      相关资源
      最近更新 更多