2012-06-01 63 views
3

GCC和铿锵让你用-w编译来禁用所有警告,但是我看不到它的#pragma等价物。我只能看到禁用个别文件的编译指示支持。有没有办法在clang或gcc中使用pragma禁用所有警告?

我需要这个,因为我有代码要编译高警告级别,但必须编译生成任意警告的第三方代码。

+1

修改源代码似乎有点奇怪;为什么不通过不同的'Makefile'目标来处理? – sarnold

+1

能够通过编译指令在代码中执行此操作,可以仅禁用需要禁用的代码的警告,而不是禁用整个翻译单元的代码。它也允许你通过使用_Pragma有条件地做它。 –

回答

1

你可以那种用GCC做的,差不多,用的是#pragma GCC diagnostic ignored,但不太好,请看here

问题是,你不能只是“禁用所有”,你必须禁用每一个。另外,对于一些警告它不起作用(和文档不告诉你哪些...)。

我的猜测是,这有点初步,并会(希望)在下一个版本中得到改善。

相关问题