运行时cl.exe
,可以指定警告级别。
cl /W3
cl /W4 # warn even more
cl /Wall # all warnings on
但是,最高级别 ,/Wall
似乎不切实际,因为它会在 Windows 头文件中触发警告,例如windef.h
(Windows SDK for VS2010)。最常出现的两个似乎是C4668和C4820。所以你可以关闭它们:
cl /Wall /wd4668 /wd4820
仍然给你留下C4255:
C:\SDKs\Windows\v7.0A\include\windef.h(230) : warning C4255: 'FARPROC'
C:\SDKs\Windows\v7.0A\include\windef.h(231) : warning C4255: 'NEARPROC'
C:\SDKs\Windows\v7.0A\include\windef.h(232) : warning C4255: 'PROC'
所以你也添加了:
cl /Wall /wd4668 /wd4820 /wd4255
但其他人可能会突然出现。而且我可能想为我自己的代码保留这些警告,只是不要让输出被并非源自我的代码的警告弄乱。
有没有办法让编译器将不同的设置应用于标准头文件而不是我自己的代码?
更新
嗯,有一个类似的问题,答案是用/W4
而不是/Wall
。也许 MSVC 无法为不同的文件指定不同的设置。