/w、/Wn、/WX、/Wall、/wln、/wdn、/wen、/won(警告等级)

更新:2007 年 11 月

指定编译器如何为给定编译生成警告。

/w
/Wn
/WX
/Wall
/wln
/wdn
/wen
/won

备注

下表中描述了这些选项和相关参数。

选项

说明

/w

禁用所有编译器警告。

/Wn

指定编译器生成的警告的最高等级。n 的有效警告等级范围在 0 到 4 之间:

  • 等级 0 禁用所有警告。

  • 等级 1 显示严重警告。等级 1 是命令行中的默认警告等级。

  • 等级 2 显示所有等级 1 警告和不如等级 1 严重的警告。

  • 等级 3 显示所有等级 2 警告和所有其他出于生产目的而建议的警告。

  • 等级 4 显示所有等级 3 警告以及信息性警告(大多数情况下可以安全地忽略这些信息性警告)。此选项应只用于提供“lint”等级警告,建议不要将其用作常用警告等级设置。

对于新项目,最好在所有编译中使用 /W4。这将确保难以查找的代码缺陷最少。

/Wall

启用所有警告(包含那些默认情况下禁用的警告)。请参见默认情况下处于关闭状态的编译器警告

/WX

将所有编译器警告都视为错误。对于新项目,最好在所有编译中使用 /WX;解决所有警告将确保难以查找的代码缺陷最少。

链接器还具有 /WX 选项;有关更多信息,请参见 /WX(将链接器警告视为错误)

/wln

指定特定警告的等级。第一个参数设置警告等级(与 /Wn 相同),第二个参数是实际警告编号。

例如,/w14326 使 C4326 生成为等级 1 警告。

/wdn

禁用指定的编译器警告,其中 n 是编译器警告编号。

例如,/wd4326 禁用编译器警告 C4326。

/wen

将特定的编译器警告视为错误,其中 n 是编译器警告。

例如,/we4326 将警告编号 C4326 标记为错误。

/won

只报告一次错误,其中 n 是编译器警告。

例如,/wo4326 将导致警告 C4326 只报告一次。

如果用其中一个 /w 选项创建预编译头 (/Yc(创建预编译头文件)),任何对此预编译头的使用 (/Yu(使用预编译头文件)) 将导致那些相同的 /w 选项重新生效。可以在命令行用另一个 /w 选项重写预编译头中的 /w 设置。

源代码中的杂注指令不受 /w 选项的影响。

还可以使用 warning 控制在编译时报告的警告等级。

C/C++ 生成错误 描述这些警告,指示各个警告的等级,并指示可能无法按照预期编译的语句的潜在问题(而非实际编码错误)。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开该项目的“属性页”对话框。有关详细信息,请参见如何:打开项目属性页

  2. 单击“C/C++”文件夹。

  3. 单击“常规”属性页,并修改“警告等级”或“将警告视为错误”属性。

  4. 单击“高级”属性页,并修改“禁用特定警告”属性。

  5. 对于其他选项,单击“命令行”属性页,并在“附加选项”框中键入编译器选项。

以编程方式设置此编译器选项

请参见

参考

编译器选项

设置编译器选项