【问题标题】:Set of Warnings as Error g++作为错误 g++ 的警告集
【发布时间】:2013-02-02 16:29:10
【问题描述】:
我想为我的 g++ 编译器更改警告和错误的行为:
- 我希望将正常警告发现为错误 (
-Werror)
- 我希望发现额外的警告。 (
-Wall 和 -Wextra)
但我的问题是,这样一来,所有和额外的警告都会出错。有没有一种方法可以实现我想要的,而无需在-Werror=xxx,xxx,xxx 设置一长串列表。
是否有某种错误集的别名?
【问题讨论】:
标签:
c++
compiler-errors
g++
compiler-warnings
【解决方案1】:
如果你只是给-Werror,所有的警告都会变成错误。除了将您(不想)犯的错误列为-W(no-)error=xxx 之外,我不相信有办法“将一些警告变成错误”。
当然,一种解决方案可能是编译代码两次——一次使用-Wall 和-Wextra,一次使用-Werror,但不是-Wall 和-Wextra。
从长远来看,我相信值得付出额外的努力来标记您(不)希望 -Werror 将哪些错误视为错误 [尽管我认为更好的解决方案可能是使用-Wno-xxx,禁用任何你认为可以接受的警告,而不是“警告但不要让它成为错误”——毕竟,在我看来,-Werror 的目的是防止代码被提交到带有警告的项目 - 这应该意味着两件事之一:警告已修复,或警告已禁用。无论哪个对那个项目有意义]。
【解决方案2】:
您可以使用-Werror -Wno-error=... 和更短的警告列表(仅限-Wall -Wextra 启用的警告),而不是使用-Werror=... 和一长串警告。手册列出了 -Wall -Wextra 启用了哪些警告,因此很容易。