首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在我不想编辑的第三方代码中,如何禁用来自gcc的未使用变量警告?

在我不想编辑的第三方代码中,如何禁用来自gcc的未使用变量警告?
EN

Stack Overflow用户
提问于 2013-02-25 00:24:26
回答 7查看 207K关注 0票数 114

我想知道你给gcc编译器传递了什么开关来关闭未使用的变量警告?我在windows上的boost中遇到错误,我不想接触boost代码:

代码语言:javascript
复制
C:\boost_1_52_0/boost/system/error_code.hpp: At global scope:
C:\boost_1_52_0/boost/system/error_code.hpp:214:36: error: 'boost::system::posix_category' defined but not used [-Werror=unused-variable]
C:\boost_1_52_0/boost/system/error_code.hpp:215:36: error: 'boost::system::errno_ecat' defined but not used [-Werror=unused-variable]
C:\boost_1_52_0/boost/system/error_code.hpp:216:36: error: 'boost::system::native_ecat' defined but not used [-Werror=unused-variable]

我尝试同时使用-Wunused-value-Wno-unused-value,但都没有抑制上面的消息。

什么是正确的命令,下面是我的编译代码行:

代码语言:javascript
复制
g++  -g -fno-inline -Wall -Werror -Wextra -Wfloat-equal -Wshadow
-Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Wno-conversion 
-Wdisabled-optimization -Wredundant-decls -Wunused-value -Wno-deprecated 
-IC:\\boost_1_52_0 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 
-c -o op.o op.cpp

也许-Wall覆盖了我的目标?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-02-25 00:31:10

-Wno-unused-variable交换机通常可以完成此任务。但是,如果您关心项目中的这些事情,这确实是一个非常有用的警告。但是,当GCC开始警告您代码中没有的内容时,它会变得很烦人。

我建议您保留警告,但是对于包含第三方项目的目录,请使用-isystem而不是-I。那面旗子告诉GCC不要警告你你无法控制的东西。

例如,不使用-IC:\\boost_1_52_0,而使用-isystem C:\\boost_1_52_0

希望能有所帮助。祝好运!

票数 265
EN

Stack Overflow用户

发布于 2014-03-28 17:17:26

如果您使用的是gcc,并且想要禁用所选代码的警告,则可以使用#杂注编译器指令:

代码语言:javascript
复制
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
( your problematic library includes )
#pragma GCC diagnostic pop

对于您控制的代码,您还可以使用__attribute__((unused))来指示编译器不使用特定变量。

票数 75
EN

Stack Overflow用户

发布于 2013-02-25 00:26:32

使用-Wno-unused-variable应该可以。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15053776

复制
相关文章

相似问题

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