2010-11-27 29 views
7

我正在使用MSVC与CMaked项目。因此,我启用了许多MSVC上为gcc和clang启用的标志。然而,/ Wall警告级别给我带来一些痛苦;它会警告我包含头文件中的各种东西,比如stdio.h和boost头文件。有没有办法阻止MSVC警告标题中的东西?我喜欢我的警告级别,但我只希望他们为我启用。MSVC - 在标题中停止警告

+0

[MSVC-WALL中标准头文件中的数千个警告有什么问题?](http://stackoverflow.com/questions/4001736/whats-up-with-the-thousands-of-warnings- in-standard-headers-in-msvc-wall) – nus 2016-07-23 14:07:31

+0

vote for https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/14717934-add-a-cl-exe-option-for -system-headers-like-gcc-s – Trass3r 2017-07-20 11:42:27

回答

7

/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

+0

因此,没有办法告诉MSVC不会在我无法控制的标题中发出警告? (即包含在尖括号内的所有标题,而不是双引号) – bfops 2010-11-27 15:54:29

0

马克Tolonen早已指出/W4

如果仍然产生警告,例如您使用的是7.1版本的旧版MSVC版本,或者您正在使用某些第三方库,该库仍会产生有关完美代码的警告,并且您正在瞄准清洁编译,然后查看我的msvc silly-warning suppression标题。

在comp.lang.C++ Usenet组中,它经过了几轮社区评审,但它可能会需要更新,因为微软在新的编译器版本中增加了更多愚蠢的警告。 ;-)

0

您可以使用/wdXXXX标志禁用特定的警告,其中XXXX是您希望忽略的警告的数量。无需修改代码。