我使用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
答案 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 时存在问题。