【发布时间】:2012-04-23 06:02:10
【问题描述】:
我使用自动工具来管理我的 CPP 项目。编译我的代码时,gcc 有这些标志:-Wall -Werror
所以,当我的代码中出现警告时,gcc 会将其视为错误,编译将被中断。
我的项目还包括 antlr3,它会生成几个文件。生成的文件包含几个警告,这些警告会中断编译。
error: unused variable ‘index21_49’
in CongerCQLLexer.c, line 20589, column 24
20587> ANTLR3_UINT32 LA21_49;
20588>
20589> ANTLR3_MARKER index21_49;
20590>
20591>
error: unused variable ‘index21_131’
in CongerCQLLexer.c, line 20622, column 24
20620> ANTLR3_UINT32 LA21_131;
20621>
20622> ANTLR3_MARKER index21_131;
20623>
20624>
我想知道如何禁用生成文件的警告? 谢谢。
【问题讨论】:
-
-Wall -Werror默认包含在项目的构建系统中是一个非常糟糕的主意。即使它在您系统上的 gcc 版本 X 上编译得很好,它可能无法在最终用户系统上的 gcc 版本 Y 上编译。 gcc 一直在添加新的警告,并且用户系统的特征(例如系统头文件的差异)可能会导致一些您没有预料到的警告。我只会在本地启用 -Werror,绝不会在您发布的默认构建系统中启用。 -
顺便说一句,GNU binutils最近打破了这个原则,每次我构建它时,由于
-Werror而失败,我必须返回并重新运行配置@987654328 @删除。这是一个巨大的痛苦......
标签: c makefile antlr autotools