编译指示警告(推,0)不会禁用/墙警告?

时间:2018-01-23 23:39:00

标签: c++ visual-studio msbuild visual-studio-2017

我记得这个技巧在过去的某个时间有效,但现在似乎没有用。

#pragma warning(push, 0)语句周围放置#include实际上并不会阻止从这些包含的文件生成/Wall警告。

/Wall更改为/W4可解决此问题,但使用/Wall似乎已被破坏。

#pragma warning(push, 0)

#include <iostream>

#pragma warning(pop)

int main() {
    std::cout << "Hello, World!";
}

构建输出:

image

Microsoft Visual Studio Community 2017版本15.5.3

完整的命令行开关(从cmake生成):

/GS /TP /analyze- /Wall /Zc:wchar_t /Gm- /O2 /Ob2 /Fd"main.dir\Release\vc141.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "CMAKE_INTDIR=\"Release\"" /D "_MBCS" /errorReport:prompt /WX /Zc:forScope /GR /Gd /Oy- /MD /std:c++14 /Fa"Release/" /EHsc /nologo /Fo"main.dir\Release\" /Fp"main.dir\Release\main.pch" /diagnostics:classic 

我搜索了一下,发现post似乎描述了同样的问题,但没有提出任何解决方案。希望StackOverflow上的人们有更好的想法吗?

1 个答案:

答案 0 :(得分:3)

这似乎已在15.9.1中为我解决。