3
GCC和铿锵让你用-w编译来禁用所有警告,但是我看不到它的#pragma等价物。我只能看到禁用个别文件的编译指示支持。有没有办法在clang或gcc中使用pragma禁用所有警告?
我需要这个,因为我有代码要编译高警告级别,但必须编译生成任意警告的第三方代码。
GCC和铿锵让你用-w编译来禁用所有警告,但是我看不到它的#pragma等价物。我只能看到禁用个别文件的编译指示支持。有没有办法在clang或gcc中使用pragma禁用所有警告?
我需要这个,因为我有代码要编译高警告级别,但必须编译生成任意警告的第三方代码。
你可以那种用GCC做的,差不多,用的是#pragma GCC diagnostic ignored
,但不太好,请看here。
问题是,你不能只是“禁用所有”,你必须禁用每一个。另外,对于一些警告它不起作用(和文档不告诉你哪些...)。
我的猜测是,这有点初步,并会(希望)在下一个版本中得到改善。
修改源代码似乎有点奇怪;为什么不通过不同的'Makefile'目标来处理? – sarnold
能够通过编译指令在代码中执行此操作,可以仅禁用需要禁用的代码的警告,而不是禁用整个翻译单元的代码。它也允许你通过使用_Pragma有条件地做它。 –