抑制-GCC中的Wunknown杂注警告
我尝试忽略来自以下第三方头文件的警告:抑制-GCC中的Wunknown杂注警告,gcc,warnings,pragma,suppress-warnings,Gcc,Warnings,Pragma,Suppress Warnings,我尝试忽略来自以下第三方头文件的警告: #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunknown-pragmas" #pragma GCC diagnostic ignored "-Wreorder" #include <some_3rd_party_header.h> #pragma GCC diagnostic pop #pragma GCC诊断推送 #已忽略pragma GCC诊断“-Wun
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#pragma GCC diagnostic ignored "-Wreorder"
#include <some_3rd_party_header.h>
#pragma GCC diagnostic pop
#pragma GCC诊断推送
#已忽略pragma GCC诊断“-Wunknown pragma”
#pragma GCC诊断已忽略“-Wreorder”
#包括
#pragma-GCC-diagnostic-pop
这种方法似乎在一般情况下有效,但不适用于未知的pragma警告(我仍然能得到它们)
为什么它适用于其他警告,但不适用于此警告?有人能证实这种行为吗
我在Debian下使用带有
-Wall
和-std=c++0x
的g++(版本4.7.1)。我也遇到了这种麻烦。根据GCC手册页-Wall
为您打开-Wunknown pragmas
,因此只需在-Wall
之后使用-Wno unknown pragmas
手动禁用它
有一个GCC功能请求使用#pragma GCC diagnostic
:
-Wno unknown pragmas
是一个选项吗?@DanielFischer我猜你的意思是作为编译器的命令行参数?这会在我自己的代码中禁用警告,我不想这样。好的,可以理解。也许您可以尝试将这些头作为系统头,正如建议的那样?这确实是一个很好的解决方案,从一开始它就是我的第一选择。但我正在使用Eclipse(自动生成的make文件),Eclipse似乎没有提供将包含目录标记为系统包含目录的方法。所以它总是使用-I
而不是-isystem
。可能与此错误有关: