msvc预编译头警告抑制

时间:2015-02-14 15:54:42

标签: c++ visual-c++ compiler-warnings precompiled-headers

在我的C ++项目中,我使用预编译头作为编译时优化。但是,当我在编译器设置中启用/ Wall选项时,我无法抑制预编译头文件中的任何警告。

标题文件:

#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。

2 个答案:

答案 0 :(得分:2)

不要在Visual C ++中使用/Wall。它与g {+ -Wall的含义不同。使用/W4(粗略等同于g ++ -Wall)。

答案 1 :(得分:0)

我没有得到包含矢量的4514警告。 您只禁用了4514,并且仅在矢量标题中。我认为这恰好发生在碰巧使用vector的其他代码中,并且警告消息(你没有发布)引用了向量头,因为这是优化器删除函数的地方。