如何解决VC ++ 2010:使用/ Wall编译
| 我想用/ Wall编译我的项目。 当我这样做时,我会从第三方代码(增强库,其他系统头文件)中获得大量警告。我包括这些第三方头文件的唯一地方是我的预编译头(header0ѭ)。 我试过了(in0ѭ)#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编译所有第三方代码?
解决方法
第三方代码的修改频率较低,因此最好在StdAfx.h中包含所有这些内容,然后上述解决方案将禁止它们发出警告。
要么创建一个其他包装器头文件,要么在您使用的库的实际包含周围使用上述杂注。
我想不出第三种方式。我说将所有内容都推到stdafx中(以及实际包含的位置。请记住,stdafx是一种优化-不能替代包括源文件在内的精心选择)
,/ W4比/ Wall更现实。我通常将Stl,tr1和Windows标头与/ W4一起使用。我不知道升压。
用#pragma包裹标题还不够的原因是,在实例化模板或扩展宏(或什至有内联)时会生成一些警告。
,检查所有包含文件的内容。可能其中一个可能会将警告重置为默认状态。我已经用VC ++附带的MFC或ATL标头看到了这一点-禁用了某些警告,然后使用\“ default \”调用说明符而不是使用推/弹出对来重新启用它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。