有没有什么方法可以在clang或gcc中使用pragma禁用所有警告?

uurv41yg  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(178)

GCC和clang允许你使用-w编译来禁用所有警告,但是我看不到与之等价的#pragma,我只能看到pragma对禁用单个文件的支持。
我需要这个,因为我有代码,我想编译高警告级别,但必须编译第三方代码,生成任意警告。

jjjwad0x

jjjwad0x1#

你几乎可以用GCC做这件事,使用#pragma GCC diagnostic ignored,但不幸的是不是很好,参见here
问题是你不能“全部禁用”,你必须禁用每一个。另外,对于一些警告,它不起作用(文档没有告诉你是哪一个)。
我的猜测是,这有点初步,并将(希望)在下一个版本中得到改进。

czfnxgou

czfnxgou2#

对阿昌来说是的

#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Weverything"
#endif

... your terrible code ...

#if defined(__clang__)
#pragma clang diagnostic pop
#endif

字符串
在Clang中对-Weverything有特殊处理。
不幸的是GCC没有类似的功能。我试过-Wall;不工作。我也读了源代码,看不到任何其他可以工作的东西。

相关问题