g ++:禁用特定的“已弃用或过时的标头”如何?

时间:2013-01-21 17:20:26

标签: g++ warnings deprecated

我们正在使用g ++ 4.4.3,我们的第三方库之一导致了可爱的错误

/ usr / include / c ++ / 4.4 / backward / backward_warning.h:28:2:警告:#warning此文件包含至少一个已弃用或过时的标题,可能会在将来某个日期删除,恕不另行通知。请使用具有等效功能的非弃用接口。有关替换标头和接口的列表,请参阅文件backward_warning.h。要禁用此警告,请使用-Wno-deprecated。

由于它是第三方库,我无法解决问题,所以我只想告诉编译器为导致问题的一个H文件禁止此警告。

我尝试了一些

#pragma GCC diagnostic ignored "-Wdeprecated"

但是我无法找到要指定的警告(没有" -Wdeprecated")。

那么有什么方法可以为一个有害的H文件压制这个警告?我希望能做到这样的事情:

// Turn off the warning
#pragma GCC diagnostic ignored "-Wdeprecated"
#include "BadFile.h"
// Turn the warning back on
#pragma GCC diagnostic warning "-Wdeprecated"

1 个答案:

答案 0 :(得分:0)

我无法找到使用pragma执行此操作的方法,只能在命令行上传递-Wno-deprecated。所以,如果你绝望,你可以尝试:

#undef __DEPRECATED

// include offensive headers here...

#define __DEPRECATED

但请注意,我绝对不会宽恕不确定系统级别#defines :-P