一组警告作为错误g ++

时间:2013-02-18 09:24:19

标签: c++ compiler-errors g++ compiler-warnings

我想更改g ++编译器的警告和错误行为:

  • 我希望将正常警告视为错误(-Werror
  • 我想要发现额外的警告。 (-Wall-Wextra

但我的问题是这样,所有和额外的警告都会出错。有没有办法实现我想要的,而无需在-Werror=xxx,xxx,xxx设置长列表。
是否存在某种错误的别名?

2 个答案:

答案 0 :(得分:14)

如果你只是给-Werror所有警告都会出错。除了列出你(不)想要犯错误的-W(no)error=xxx之外,我不相信有一种方法可以“对错误做出一些警告”。

当然,一个解决方案可能是编译代码两次 - 一次使用-Wall-Wextra,一次使用-Werror,但不是-Wall和{{1 }}

从长远来看,我确信值得花费额外的努力来标记你(不)希望-Wextra看到错误的错误[虽然我会说更好的解决方案可能是使用-Wno-xxx,禁用你认为可接受的任何警告,而不是“警告但不要使其成为错误” - 毕竟,我认为-Werror的目的是阻止代码被提交到一个带有警告的项目 - 这应该意味着两件事之一:警告被修复,或者警告被禁用。无论哪个对该项目有意义]。

答案 1 :(得分:4)

您可以将-Werror=...与更短的警告列表(仅-Werror -Wno-error=...启用的警告列表)一起使用-Wall -Wextra,而不是将-Wall -Wextra与警告列表一起使用。该手册列出了{{1}}启用了哪些警告,因此这是一个明智的选择。