msvc 预编译 header 警告抑制
msvc precompiled header warning suppress
在我的 C++ 项目中,我使用预编译的 headers 作为编译时优化。但是,当我在编译器设置中启用 /Wall 选项时,我无法抑制预编译 header 文件中的任何警告。
Header 文件:
#ifndef _PRECOMPILED_H
#define _PRECOMPILED_H
#pragma warning(push, 0)
#pragma warning(disable: 4514)
#include <vector>
#pragma warning(pop)
#endif /* _PRECOMPILED_H */
源文件:
#include "precompiled.h"
我最终在向量中收到大量警告。
当我执行相同操作时,但在常规文件中,一切都按预期进行。
这个问题有什么解决方案吗?
我正在使用 Visual Studio 2013 社区版更新 4.
不要将 /Wall
与 Visual C++ 一起使用。它与 g++ 的 -Wall
不同。使用 /W4
(与 g++ -Wall
大致等价)。
我没有收到包含矢量的 4514 警告。
您仅禁用了 4514,并且仅在矢量 header 中。我认为这发生在碰巧使用矢量的其他代码中,并且警告消息(您没有 post)指的是矢量 header 因为这是优化器删除的函数被声明的地方.
在我的 C++ 项目中,我使用预编译的 headers 作为编译时优化。但是,当我在编译器设置中启用 /Wall 选项时,我无法抑制预编译 header 文件中的任何警告。
Header 文件:
#ifndef _PRECOMPILED_H
#define _PRECOMPILED_H
#pragma warning(push, 0)
#pragma warning(disable: 4514)
#include <vector>
#pragma warning(pop)
#endif /* _PRECOMPILED_H */
源文件:
#include "precompiled.h"
我最终在向量中收到大量警告。
当我执行相同操作时,但在常规文件中,一切都按预期进行。 这个问题有什么解决方案吗?
我正在使用 Visual Studio 2013 社区版更新 4.
不要将 /Wall
与 Visual C++ 一起使用。它与 g++ 的 -Wall
不同。使用 /W4
(与 g++ -Wall
大致等价)。
我没有收到包含矢量的 4514 警告。 您仅禁用了 4514,并且仅在矢量 header 中。我认为这发生在碰巧使用矢量的其他代码中,并且警告消息(您没有 post)指的是矢量 header 因为这是优化器删除的函数被声明的地方.