如何抑制第三方源文件中的警告?

11

我熟悉GCC和Keil的警告抑制指令(它们不同,但用法基本相同)。 对于第三方头文件,我可以这样做:

#pragma push
#pragma suppress warning
#include "whatever.h"
#pragma pop

但是我该如何抑制第三方来源的警告呢?Eclipse+GCC和Keil都会生成它们。

我唯一想到的解决方案是创建一个包含其他 .c 文件的 whapper .c 文件,这似乎是一个非常糟糕的技巧。

还有其他的解决方法吗?


1
如果您有一个良好命名且单独的空源文件,其中包括第三方文件,我会称之为“技巧”,而不是“非常肮脏的技巧”。当然这是个人口味问题 :-) 我同意更“标准”的解决方案更可取。 - meaning-matters
这些技巧对于Eclipse来说也有点不方便,因为Eclipse默认情况下会在构建过程中包含项目文件夹中的所有文件。因此,这些第三方源代码将被构建两次 - 一次作为它们自己,另一次作为被包含的文件。当然,它们可以手动从构建中排除,但这又是另一个麻烦。 - Amomum
2个回答

4

使用gcc编译时,您可以使用-w选项来抑制警告。

-w:禁止所有警告消息。

例如:

gcc -w third_party_sourcefile.c 

1
这是一个不错的方法,但我不确定它是否适用于Eclipse,因为它会生成makefile文件。 - Amomum
@Amomum,抱歉我不熟悉Eclipse。肯定会有人提供关于Eclipse的有用信息。 - Gangadhar

2

您可能希望使用-isystem而不是-Idir来引用第三方头文件。请参见GCC手册

如果您可以编辑第三方源文件,则可以使用#pragma GCC diagnostic ignored "-Wwarning-to-disable",请参见GCC手册


标题不在讨论范围内。此外,我不确定如何在Eclipse中完成这个任务(因为我使用它的界面来指定包含目录)。 - Amomum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接