繁体   English   中英

VC ++ 2010:用/ Wall编译

[英]VC++ 2010: Compiling with /Wall

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

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

我试过这个(在stdafx.h

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

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

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

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

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

或者创建一些其他包装器头文件,使用上面的pragma围绕实际包含到您使用的库。

我想不出第三种方式。 我推说他们都在stdafx( 以及他们实际上是包括在内,也记得stdafx是一种优化-不仔细选择的替代品,包括你的源文件中)

/ W4比/ Wall更逼真。 我经常使用带/ W4的stl,tr1和windows标头。 我不知道提升。

使用#pragma包装标头的原因还不够,在实例化模板或扩展宏(或者甚至可能使用内联)时会生成一些警告。

检查文件所包含的所有内容。可能是其中一个可能会将警告重置为默认状态。 我已经看到了VC ++附带的MFC或ATL标题 - 一些警告被禁用,然后使用“默认”调用说明符而不是使用推/弹对重新启用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM