警告为错误 - 如何摆脱这些

Posted

技术标签:

【中文标题】警告为错误 - 如何摆脱这些【英文标题】:Warning as error - How to get rid of these 【发布时间】:2010-03-26 02:37:34 【问题描述】:

我无法弄清楚如何摆脱基本上不应该在Visual Studio 2010 中停止我的编译并且不应该显示停止器的错误,或者至少我稍后会修复它们,但我不希望编译只是错误并停止这些类型的问题。

例如,我收到以下错误:

错误 1 ​​警告为错误:XML 注释 在 'ScrewTurn.Wiki.SearchEngine.Relevance.Finalize(float)' 有一个用于“IsFinalized”的 paramref 标签, 但没有该名称的参数 C:\www\Wiki\Screwturn3_0_2_509\SearchEngine\Relevance.cs 60 70 搜索引擎

对于此代码:

  /// <summary>
  /// Normalizes the relevance after finalization.
  /// </summary>
  /// <param name="factor">The normalization factor.</param>
  /// <exception cref="InvalidOperationException">If <paramref name="IsFinalized"/> is <c>false</c> (<see cref="M:Finalize"/> was not called).</exception>
  public void NormalizeAfterFinalization(float factor) 
      if (factor < 0)
          throw new ArgumentOutOfRangeException("factor", "Factor must be greater than or equal to zero");

      if (!isFinalized)
          throw new InvalidOperationException("Normalization can be performed only after finalization");
      value = value * factor;
  

我查看了菜单 Tools -> Options,但我没有看到我可以在哪里调整编译器并告诉它不要担心注释或基于 Xhtml 的错误.

【问题讨论】:

“只需修复代码”不是问题所在。 【参考方案1】:

Visual Studio 中的每个项目都有一个“将警告视为错误”选项。浏览您的每个项目并更改该设置:

    右键单击您的项目,选择“属性”。 点击“构建”。 将“将警告视为错误”从“全部”切换为“特定警告”或“无”。

此开关的位置会有所不同,具体取决于项目的类型(例如类库与 Web 应用程序)。

【讨论】:

哎呀,这是什么地方可以隐藏它。我到处找,但在项目中。 有人知道VS2012的新解决方案吗? VS2012 中的相同解决方案,@bobble14988。 @bobble14988 在 VS2012 中,您可以在 Project properties-> C/C++ -> General 下找到该配置 我想知道为什么 VS 2017 不尊重从 All 到 None 的变化。我翻转它,保存所有内容,清理,重建,退出 VS,清理,重建令人作呕,但警告仍然是错误。 csproj 文件正在为该设置提供false。这到底是哪里错了???在 MS 开发人员具备引入错误的卓越能力之前,我放弃了。【参考方案2】:

要让 Visual Studio Express 2013 摆脱这些问题,您必须执行以下操作。

右键单击您的项目单击属性。在左侧菜单的属性窗口中选择 配置属性->C/C++->常规

在右侧选择

将警告视为错误 NO

SDL 检查否

【讨论】:

禁用 SDL Checks 在 Visual Studio 2015 上为我工作。(我将弃用警告视为错误)【参考方案3】:

Visual Studio 2015 的最佳答案已过时。

英语:

Configuration Properties -> C/C++ -> General -> Treat Warning As Errors

德语:

Konfigurationseigenschaften -> C/C++ -> Allgemein -> Warnungen als Fehler behandeln

或者用这张图作为参考,更容易在脑海中快速找出位置:

【讨论】:

【参考方案4】:

您可以控制头文件或 C 文件中的行为:

#pragma warning(error:4003) //not enough actual parameters for macro

尚未使用 Visual Studio 2015 进行测试。我有一个用于此类内容的通用头文件“compl_adaption.h”,包含在所有文件中,以便为我在 Visual Studio 上编译的所有项目设置此行为。

【讨论】:

【参考方案5】:

仅针对使用 VS2019 的人,我认为其他答案也指出了相同的位置。

【讨论】:

【参考方案6】:

在属性中,

转到配置属性。在那去 C/C++(或类似的东西)。 ,然后点击常规 ,在那删除“将警告视为错误”复选框中的检查

【讨论】:

【参考方案7】:

将所有编译器警告视为编译错误

    在解决方案资源管理器中选择项目后,在“项目”菜单上单击“属性”。 单击“编译”选项卡。 (或构建选项卡可能在那里) 选中将所有警告视为错误复选框。 (或选择构建设置并将“将警告视为错误”设置更改为 true。)

如果你想摆脱它

禁用所有编译器警告

    在解决方案资源管理器中选择项目后,在“项目”菜单上单击“属性”。 单击“编译”选项卡。 (或构建选项卡可能在那里) 选中禁用所有警告复选框。 (或选择构建设置并将“将警告视为错误”设置更改为 false。)

【讨论】:

【参考方案8】:

查看 -> 错误列表 -> 右键单击​​特定的错误/警告。

您可以根据需要更改严重性。

【讨论】:

【参考方案9】:

为了解决 VS 2019 的这个问题,我执行了以下操作:

右键项目 点击“属性” 点击“C++” 在右侧,将表值“将警告视为错误”设置为“否” 将配置(左上角的值)设置为“Debug”和“x64”。这可能因您的项目而异,具体取决于您在做什么 关闭“属性”菜单 将项目配置设置为“Debug”和“x64” 重新启动 Visual Studio(关闭并重新打开)

工作就像一个魅力。

【讨论】:

【参考方案10】:

我在 VS2019 中遇到了这个问题,当我在项目属性 UI 中更改它时,它会神奇地返回(可能在更高级别设置为默认值)

使用 SDK 风格的 CSProj 文件时:

<Project Sdk="Microsoft.NET.Sdk">

添加这个 PropertyGroup 解决了这个问题:

  <PropertyGroup>
    <NoWarn>;NU1605</NoWarn>
  </PropertyGroup>

【讨论】:

以上是关于警告为错误 - 如何摆脱这些的主要内容,如果未能解决你的问题,请参考以下文章

如何摆脱 PHP 中的 filesize() 警告?

如何摆脱“未声明的选择器”警告

如何摆脱错误“_ms sql”未找到

如何摆脱 PL/SQL 程序中的编译错误?

如何摆脱 _WIN32_WINNT 未定义警告?

如何摆脱 Apple Mach-O 链接器错误?