2013-02-18 88 views
8

我想改变警告和错误的行为对我的G ++编译器:设置警告视为错误G ++

  • 我想,正常的警告发现为错误(-Werror
  • 我想额外的警告被发现。 (-Wall-Wextra

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

回答

11

如果您只是给-Werror所有警告都会出现错误。除了将您(不想)列为错误的错误列为-W(no)error=xxx之外,我不认为有任何方法可以“将某些警告写入错误”。

当然,一个解决方案可能是编译代码的两倍 - 与-Wall-Wextra,并曾经与-Werror一次,但不是-Wall-Wextra

从长远来看,我相信这将是值得额外的努力标记哪些错误你(不)要-Werror看到错误[虽然我会说更好的解决方案可能会使用 - Wno-xxx,禁用任何您认为可接受的警告,而不是“警告但不要使其成为错误” - 毕竟,在我看来,-Werror的目的是防止代码被提交给带警告的项目在其中 - 这应该是以下两件事之一:警告是固定的,或警告被禁用。无论这个项目是否合理]。

4

而不是使用-Werror=...和一长串警告列表,您可以使用-Werror -Wno-error=...以及更短的警告列表(仅限-Wall -Wextra启用的列表)。该手册列出了-Wall -Wextra启用了哪些警告,因此这是毫不费力的。