c++ - VC++ 2010 : Compiling with/Wall

标签 c++ compiler-warnings

我想用/Wall 编译我的项目。

当我这样做时,我会收到大量来自第三方代码(增强库、其他系统头文件)的警告。我包含这些第三方头文件的唯一地方是在我的预编译头文件 ( stdafx.h ) 中。

我试过这个(在 stdafx.h 中)

#pragma warning(push,3)
    // include all the third-party headers here
#pragma warning(pop)

编译所有警告级别为 3 的第三方代码。

但是我仍然从 math.h 等文件中收到数百条警告, xmemory , vector , string_generator.hpp (boost.uuid), placeholders.hpp (boost.asio), ...

在启用所有警告的情况下编译我自己的代码的同时,如何确保编译所有警告级别为 3 的第三方代码?

最佳答案

第 3 方代码的修改频率较低,因此最好将所有这些包含在您的 StdAfx.h 中,然后您的上述解决方案将抑制它们的警告。

或者创建一些其他包装器头文件,这些包装器头文件在您使用的库的实际包含周围使用上述编译指示。

我想不出第三种方法。我说的是将它们全部插入 stdafx(它们实际上也包含在内。请记住,stdafx 是一种优化 - 不能替代仔细选择性地包含在您的源文件中)

关于c++ - VC++ 2010 : Compiling with/Wall,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6096461/

相关文章:

c++ - 类外没有函数重载

c++ - BOOST_STATIC_WARNING

c++ - 关于非普通旧数据上的 memset 的编译时间警告

c++ - "Variable shadowed"lambda 中的警告(未捕获时)

android - OpenCV Android 坐标错误

c++ - mmap 与使用 new 分配的内存

c# - 为什么 C# 编译器会为内部类生成 CS0436 警告?

c - 为什么这段代码中没有违反序列点规则?

c++ - 如何将 wchar_t 转换为 V8 字符串?

python - Windows 到 Raspberry Pi 零串行问题