为啥我的编译器警告只有一个被禁止?

Posted

技术标签:

【中文标题】为啥我的编译器警告只有一个被禁止?【英文标题】:Why is only one of my compiler warnings suppressed?为什么我的编译器警告只有一个被禁止? 【发布时间】:2019-02-12 12:14:43 【问题描述】:

这就是我在Project Properties -> Build 中的抑制警告设置:

然而编译器似乎忽略的唯一警告是第一个警告CS0168。我还有很多CS0414 警告:

为什么编译器不忽略CS0414

【问题讨论】:

尝试重建您的解决方案,如果这无助于尝试删除 bin 和 obj 目录。如果这不起作用,那肯定是一个错误 你确定你在正确的项目中设置了这个吗?此外,这些警告不应该被禁止,它们引用的代码可能是无用的。 @DavidG 我通常不喜欢隐藏任何警告,但我正在尝试将它们缩减为影响我和我正在使用的代码的列表。 似乎当我用分号 空格分隔警告编号时。 我正在使用完全更新的 Visual Studio 2017,您的确切抑制字符串对我有用 【参考方案1】:

不要包含警告代码的前缀;只包括数字部分。

nowarn compiler option documentation

也就是说,在 VS Enterprise 2017 中,无论有无前缀都适用于我。

另一个想法是确保在发出这些警告的项目中抑制代码。

【讨论】:

@TheGeneral 虽然the docs 建议只使用数字部分。 @DavidG Hrm 可能是编译器选项、项目设置和文件之间的差异,虽然很奇怪,

以上是关于为啥我的编译器警告只有一个被禁止?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 C++/CLI 编译器不为过时的属性调用生成警告?

如何在 Visual Studio 2005 中禁止警告 4200?

为啥在返回右值引用时给出 C++ 编译器警告?

为啥来自 IBM XL C/C++ 编译器的警告?

跟编译器警告说拜拜

GCC 常用编译选项