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

C++ 如何抑制第三方源文件中的警告?,c++,c,eclipse,gcc,keil,C++,C,Eclipse,Gcc,Keil,我熟悉GCC和Keil的pragmas(它们不同,但用法几乎相同)。 对于第三方标题,我可以执行以下操作: #pragma push #pragma suppress warning #include "whatever.h" #pragma pop 但如何抑制来自第三方来源的警告?Eclipse+GCC和Keil都会生成它们。 我提出的唯一解决方案是制作whapper.c文件,它将包括其他.c文件,这似乎是一个非常肮脏的把戏 有其他解决方案吗?您可能希望使用-isystem而不是-Idir第

我熟悉GCC和Keil的pragmas(它们不同,但用法几乎相同)。 对于第三方标题,我可以执行以下操作:

#pragma push
#pragma suppress warning
#include "whatever.h"
#pragma pop
但如何抑制来自第三方来源的警告?Eclipse+GCC和Keil都会生成它们。 我提出的唯一解决方案是制作whapper.c文件,它将包括其他.c文件,这似乎是一个非常肮脏的把戏


有其他解决方案吗?

您可能希望使用
-isystem
而不是
-Idir
第三方标头。看


如果您可以编辑第三方源文件,则可以使用
#pragma GCC diagnostic ignored”-w警告禁用“
请参阅。

使用GCC,在编译时可以使用-w选项抑制警告

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

例如:

gcc -w third_party_sourcefile.c 

如果您有一个命名良好的源文件(包括第三方源文件),我会称之为“技巧”,而不是“非常肮脏的技巧”。当然,品味问题:-)我同意更“标准”的解决方案是非常可取的。这些技巧对Eclipse来说也有点不方便,因为Eclipse默认在构建过程中包括项目文件夹中的所有文件。因此,这个第三方资源将被构建两次——一个作为自己的资源,另一个作为包含的资源。当然,它们可以手动从构建中排除,但这是另一个难题。标题是不可能的。另外,我不确定如何使用Eclipse实现这一点(因为我使用它的接口来指向包含目录)。这是一个好方法,但我不确定它是否适合Eclipse,因为它会生成生成文件。@Amomum,对不起,我不熟悉Eclipse。有人肯定会给你关于Eclipse的有用信息。