2010-11-27 72 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是您希望忽略的警告的數量。無需修改代碼。