【发布时间】:2010-11-27 15:26:05
【问题描述】:
我正在将 MSVC 与 CMaked 项目一起使用。结果,我在 MSVC 上启用了许多为 gcc 和 clang 启用的标志。但是,/Wall 警告级别让我有些痛苦;它会警告我包含的标头中的各种内容,例如 stdio.h 和 boost 标头。有没有办法阻止 MSVC 警告我标题中的内容?我喜欢我的警告级别,但我只想为我启用它们。
【问题讨论】:
标签: c++ visual-c++ warnings
我正在将 MSVC 与 CMaked 项目一起使用。结果,我在 MSVC 上启用了许多为 gcc 和 clang 启用的标志。但是,/Wall 警告级别让我有些痛苦;它会警告我包含的标头中的各种内容,例如 stdio.h 和 boost 标头。有没有办法阻止 MSVC 警告我标题中的内容?我喜欢我的警告级别,但我只想为我启用它们。
【问题讨论】:
标签: c++ visual-c++ warnings
/Wall 是非常迂腐。 /W4 可能是您真正需要的。要回答您的问题,您可以禁用标题周围的特定警告:
#pragma warning(disable:xxxx)
#include <yourheader.h>
#pragma warning(default:xxxx)
或更改警告级别:
#pragma warning(push,3)
#include <yourheader.h>
#pragma warning(pop)
请参阅 MSDN 文档:http://msdn.microsoft.com/en-us/library/2c8f766e.aspx
【讨论】:
您可以使用/wdXXXX 标志禁用特定警告,其中XXXX 是您希望忽略的警告数量。无需修改代码。
【讨论】:
Mark Tolonen 已经指出/W4。
如果仍然产生警告,例如您使用的是较旧的 MSVC 版本(如 7.1),或者您使用的某些第 3 方库仍会产生关于完美代码的警告,并且您的目标是 clean compiles,然后查看我的 @987654321 @标头。
它已经在 comp.lang.c++ Usenet 组中通过了几轮社区审查,但它可能/将需要更新,因为微软在新的编译器版本中添加了更多愚蠢的警告......;-)
【讨论】: