忽略 Visual Studio 中非项目文件中的警告
Ignoring warnings in non-project files in Visual Studio
我刚刚打开所有警告 (/Wall
) 并将所有警告视为错误 (/WX
)。我突然从 0 个警告变成了 1329 个错误警告。
事实是,这些警告中有 99% 不在我编写的文件中。其中一部分在标准库中,而其他在我的项目中使用的库中。
如何告诉 Visual Studio 仅对我编写的文件(直接属于项目的一部分)执行此类检查而忽略其他所有内容?
请注意,我自己的所有源文件都将位于一个文件夹中,任何库都包括在内(但与我的源文件不同)。
编辑:
我已经意识到我可以包装所有我不想在两个 pragma 之间检查的包含,例如:
#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
中,但我不知道从这里去哪里。
请注意,即使我将整个(且唯一的)文件包装在上面的 pragma 中,也会出现此警告。
虽然 #pragma warning(push, 0)
和 #pragma warning(pop);
中的包装将适用于标志 W0
到 W4
,但 Wall
似乎包含不受以下影响的警告上面的编译指示。这是设计使然:
我刚刚打开所有警告 (/Wall
) 并将所有警告视为错误 (/WX
)。我突然从 0 个警告变成了 1329 个错误警告。
事实是,这些警告中有 99% 不在我编写的文件中。其中一部分在标准库中,而其他在我的项目中使用的库中。
如何告诉 Visual Studio 仅对我编写的文件(直接属于项目的一部分)执行此类检查而忽略其他所有内容?
请注意,我自己的所有源文件都将位于一个文件夹中,任何库都包括在内(但与我的源文件不同)。
编辑: 我已经意识到我可以包装所有我不想在两个 pragma 之间检查的包含,例如:
#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
中,但我不知道从这里去哪里。
请注意,即使我将整个(且唯一的)文件包装在上面的 pragma 中,也会出现此警告。
虽然 #pragma warning(push, 0)
和 #pragma warning(pop);
中的包装将适用于标志 W0
到 W4
,但 Wall
似乎包含不受以下影响的警告上面的编译指示。这是设计使然: