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 \”调用说明符而不是使用推/弹出对来重新启用它们。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...