警告集为错误 g++

问题描述 投票:0回答:2

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

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

但我的问题是,这样,所有额外的警告都会出错。有没有一种方法可以实现我想要的,而不需要在

-Werror=xxx,xxx,xxx
设置一个长列表。
错误集是否有某种别名?

c++ compiler-errors g++ compiler-warnings
2个回答
26
投票

如果您只是给出

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

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

-Wall
-Wextra
,一次使用
-Werror
,但不使用
-Wall
-Wextra

从长远来看,我确信花费额外的精力来标记您(不)希望

-Werror
将哪些错误视为错误[尽管我想说更好的解决方案可能是使用 -Wno -xxx,禁用您认为可以接受的任何警告,而不是“警告但不要使其成为错误” - 毕竟,在我看来,
-Werror
的目的是防止代码被提交到项目其中的警告 - 这应该意味着两件事之一:警告已修复,或者警告已禁用。无论哪个对该项目有意义]。


6
投票

您可以使用

-Werror=...
来显示更短的警告列表(仅使用
-Werror -Wno-error=...
启用的警告),而不是使用
-Wall -Wextra
来显示一长串警告。手册列出了哪些警告是由
-Wall -Wextra
启用的,所以这是显而易见的。

© www.soinside.com 2019 - 2024. All rights reserved.