我想更改我的 g++ 编译器的警告和错误行为:
-Werror
)-Wall
和 -Wextra
)但我的问题是,这样,所有额外的警告都会出错。有没有一种方法可以实现我想要的,而不需要在
-Werror=xxx,xxx,xxx
设置一个长列表。 如果您只是给出
-Werror
,所有警告都会变成错误。除了将您(不)想要犯错误的错误列出为-W(no-)error=xxx
之外,我不相信有一种方法可以“使一些警告变成错误”。
当然,一种解决方案可能是编译代码两次 - 一次使用
-Wall
和 -Wextra
,一次使用 -Werror
,但不使用 -Wall
和 -Wextra
。
从长远来看,我确信花费额外的精力来标记您(不)希望
-Werror
将哪些错误视为错误[尽管我想说更好的解决方案可能是使用 -Wno -xxx,禁用您认为可以接受的任何警告,而不是“警告但不要使其成为错误” - 毕竟,在我看来,-Werror
的目的是防止代码被提交到项目其中的警告 - 这应该意味着两件事之一:警告已修复,或者警告已禁用。无论哪个对该项目有意义]。
您可以使用
-Werror=...
来显示更短的警告列表(仅使用 -Werror -Wno-error=...
启用的警告),而不是使用 -Wall -Wextra
来显示一长串警告。手册列出了哪些警告是由 -Wall -Wextra
启用的,所以这是显而易见的。