首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在GCC中隐藏“已定义但未使用”的警告?

如何在GCC中隐藏“已定义但未使用”的警告?
EN

Stack Overflow用户
提问于 2008-12-22 13:02:30
回答 8查看 97.2K关注 0票数 71

我有一堆编译时断言,例如:

CASSERT(isTrue) or CASSERT2(isTrue, prefix_)

当我和GCC一起编译的时候,我收到了很多像'prefix_LineNumber' defined but not used这样的警告。有没有办法隐藏编译时断言的警告?我没有幸运地搜索到GCC的文档。我想我可以在同一个宏中自动全局使用var,但我想不出任何方法来做到这一点。

有没有人知道如何在“GCC”中隐藏这种警告?

EN

回答 8

Stack Overflow用户

发布于 2009-03-04 11:17:56

在搜索这个问题的解决方案时,我看到了这个帖子。我在这里张贴我找到的解决方案的完整性…

控制未使用的warnings的GCC编译器标志包括:

-Wunused-function
-Wunused-label
-Wunused-parameter
-Wunused-value
-Wunused-variable
-Wunused (=all of the above)

每一个都有一个相应的否定形式,在W后面插入"no-“,这将关闭警告(例如,如果它是由-Wall打开的)。因此,在您的情况下,您应该使用

-Wno-unused-function

当然,这适用于整个代码,而不仅仅是编译时断言。对于特定于函数的行为,可以查看Function attributes

票数 110
EN

Stack Overflow用户

发布于 2008-12-22 13:45:32

GCC不与其他编译器冲突的解决方案

#ifdef __GNUC__
#define VARIABLE_IS_NOT_USED __attribute__ ((unused))
#else
#define VARIABLE_IS_NOT_USED
#endif

int VARIABLE_IS_NOT_USED your_variable;
票数 54
EN

Stack Overflow用户

发布于 2011-05-13 06:09:46

这是最令人欣慰的警告之一,尽管我理解检查死代码(有时)可能是有用的。但我通常使用静态函数进行调试,或者在将来某个时候可能有用的函数,或者只是暂时使用的函数,我希望将它们保留在代码中。

幸运的是,这个警告并不关心内联函数。

inline static foo()
{
}
票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/386220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档