【问题标题】:What does `-Wextra` flag mean in clang compiler?`-Wextra`标志在clang编译器中是什么意思?
【发布时间】:2019-09-06 21:58:40
【问题描述】:

clang编译器标志中-Wextra是什么意思?

我很好奇-Wall-Werror 等所有标志的含义。我能够为其他人找到答案,但不是-Wextra

clang -Wall -Wextra -Werror

【问题讨论】:

  • -Wall 启用所有警告,但实际上并非所有警告。其余的都在-Wextra,除了不是所有的其余部分。为此,我们也有 -Weverything
  • 怎么没找到官方文档:clang.llvm.org/docs/DiagnosticsReference.html#wextra
  • @bolov:这是 Stack Overflow, 用于手动搜索的 Internet 资源:-/
  • @bolov:那个文档有什么用?它说“默认情况下启用此标志控制的某些诊断。” “一些”? “一些”有什么用?它什么也没告诉我们。然后它告诉我们“还控制……”,但没有填写“一些”。嘿,这是一个程序。做“某事”有完整的文档记录。

标签: c clang


【解决方案1】:

-Wextra 标志不仅仅特定于 clang 编译器,它也记录在 GCC Compiler 中。基本上,-Wall 启用所有(常见)警告标志,但这不包括许多标志。

其中一些,特别是 -Wempty-init-stmt-Wignored-qualifiers-Winitializer-overrides-Wmissing-field-initializers-Wmissing-method-return-type-Wnull-pointer-arithmetic-Wsemicolon-before-method-body-Wsign-compare-Wunused-parameter 被 @9876534 覆盖.

您可以在documentation 中找到有关这些含义的更多信息。

【讨论】:

  • 新用户必须考虑到这一点,如果他们找到正确的答案并解决了他们的问题,那么请将其标记为答案。这样如果将来有人遇到同样的问题,他们可以在不提出新问题的情况下获得方便的帮助。这就是这里的工作方式。欢迎来到 SO :)
【解决方案2】:

-Wextra 编译器标志不仅在 clang 中,而且在 gcc 中。根据 gcc 文档:

这会启用-Wall 未启用的一些额外警告标志。这个选项曾经被称为-W。旧名称仍受支持,但新名称更具描述性。

来源:

【讨论】:

  • 谢谢!现在我也明白了 -W 的含义... :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 2015-09-02
  • 2014-06-04
  • 2014-02-27
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多