GCC 和 clang 允许您使用 -w 进行编译以禁用所有警告,但我看不到与之等效的 #pragma。我只能看到禁用单个文件的编译指示支持。
我需要这个,因为我有一些代码想要以高警告级别进行编译,但它必然会编译生成任意警告的第三方代码。
你可以有点用GCC来做,几乎,使用
#pragma GCC diagnostic ignored
,但不幸的是不是很好,请参见这里。
问题是你不能只是“禁用全部”,你必须禁用每一个。另外,对于某些警告它不起作用(并且文档不会告诉您哪些警告......)。
我的猜测是,这有点初步,并且(希望)在下一个版本中得到改进。
对于 Clang 来说,是的!
#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
;不起作用。我也阅读了源代码,但看不到任何其他可以工作的东西。