忽略 Visual Studio 中非项目文件中的警告

Ignoring warnings in non-project files in Visual Studio

提问人:Karlovsky120 提问时间:8/22/2020 最后编辑:Karlovsky120 更新时间:8/23/2020 访问量:368

问:

我刚刚打开了所有警告()并将所有警告视为错误()。我突然从 0 个警告变成了 1329 个错误警告。/Wall/WX

问题是,这些警告中有 99% 不在我写的文件中。它们的一部分在标准库中,而另一些则在我在项目中使用的库中。

如何告诉 Visual Studio 仅对我编写的文件(直接是项目的一部分)执行此类检查,而忽略其他所有内容?

请注意,我自己的所有源文件都将位于一个文件夹中,任何库包含(但与我的源文件不同)也是如此。

编辑: 我已经意识到我可以在两个编译指示之间包装我不想检查的所有包含,例如:

#pragma warning(push, 0) // Ignore warnings in non-project files.
#include "volk.h"
#include "glfw3.h"

#include <assert.h>
#include <cstdio>
#include <stdexcept>
#include <vector>
#pragma warning(pop);

但是,在这种情况下,文件中存在一些警告,这些警告仍在报告中。它们出现在函数中,但我不知道从这里去哪里。 请注意,即使我将整个(且唯一)文件包装在上面的编译指示中,也会出现此警告。xmemory_Adjust_manually_vector_aligned

visual-studio 警告 suppress-warnings

评论


答:

0赞 Karlovsky120 8/23/2020 #1

虽然包装包含在 并且将用于标志 ,但似乎包含不受上述编译指示影响的警告。这是设计使然:#pragma warning(push, 0)#pragma warning(pop);W0W4Wall

https://social.msdn.microsoft.com/Forums/vstudio/en-US/891a02d2-d0cf-495a-bcea-41001cf599de/pragma-warningpush-0-cant-disable-wall-warning-on-visual-studio-2017?forum=vcgeneral