clang-tidy报告未知警告

时间:2017-10-29 23:42:05

标签: c++ cmake clang-tidy

我使用GCC进行CMake构建。我生成了compile_commands.json,然后运行了clang-tidy,但我得到了数百个:

error: unknown warning option '-Wno-maybe-uninitialized'; did you mean '-Wno-uninitialized'? [clang-diagnostic-unknown-warning-option]
error: unknown warning option '-Wno-psabi' [clang-diagnostic-unknown-warning-option]

如何禁用或删除这些警告?我看到clang++ warning: “warning: unknown warning option '-Wno-maybe-uninitialized'”但是添加了" -Wno-unknown-warning-option"给我一个错误:

run-clang-tidy-3.8.py: error: unrecognized arguments: -Wno-unknown-warning-option

3 个答案:

答案 0 :(得分:3)

尝试将-extra-arg=-Wno-unknown-warning-option附加到clang-tidy命令行。

使用-extra-arg=要求clang-tidy将-Wno-unknown-warning-option传递给基础clang。否则,它会尝试将其解释为一个铿锵有力的旗帜。

修改

run-clang-tidy.py脚本支持-extra-arg从5.0开始。在以前的版本中,您需要编辑脚本并手动添加-extra-arg

如果您使用的是Ubuntu 16.04,则可以从以下地址获取clang-tidy-5.0
https://www.ubuntuupdates.org/package/xorg-edgers/xenial/main/base/clang-tidy-5.0

答案 1 :(得分:0)

对我来说,

set(CMAKE_CXX_CLANG_TIDY "clang-tidy-8;--extra-arg=-Wno-error=unknown-warning-option")

解决了从CMake内部运行clang-tidy的问题。

答案 2 :(得分:0)

我在使用 GCC 生成 compile_commands.json 时遇到了同样的问题。当我使用 Clang 时,一切都很好。似乎 clang-tidy/run_clang_tidy.py 在处理由不同于 Clang 的编译器生成的 compile_commands.json 时存在问题。