14

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

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

但我的问题是,这样一来,所有额外的警告都会出错。有没有一种方法可以实现我想要的,而无需在-Werror=xxx,xxx,xxx.
是否有某种错误集的别名?

4

2 回答 2

19

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

当然,一种解决方案可能是编译代码两次 - 一次使用-Walland -Wextra,一次使用-Werror,但不使用-Walland -Wextra

从长远来看,我确信将您(不)希望-Werror看到的错误标记为错误的额外努力是值得的[尽管我会说更好的解决方案可能是使用 -Wno-xxx,禁用任何你认为可以接受的警告,而不是“警告但不要让它成为错误”——毕竟,-Werror在我看来,这样做的目的是防止代码被提交给带有警告的项目——这应该表示以下两种情况之一:警告已修复,或警告已禁用。无论哪个对那个项目有意义]。

于 2013-02-18T09:38:03.137 回答
5

您可以使用更短的警告列表(仅由 启用的警告),而不是使用-Werror=...一长串警告。手册列出了启用了哪些警告,因此很容易。-Werror -Wno-error=...-Wall -Wextra-Wall -Wextra

于 2013-02-18T09:37:48.300 回答