简体   繁体   English

clang-tidy 报告未知警告

[英]clang-tidy reporting unknown warnings

I have a CMake build using GCC.我有一个使用 GCC 的 CMake 构建。 I generated compile_commands.json then ran clang-tidy but I'm getting hundreds of:我生成了 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]

How can I disable or remove these warnings?如何禁用或删除这些警告? I saw clang++ warning: “warning: unknown warning option '-Wno-maybe-uninitialized'” but adding "-Wno-unknown-warning-option" gives me an error:我看到了clang++ 警告:“警告:未知警告选项 '-Wno-maybe-uninitialized'”但添加“-Wno-unknown-warning-option”给了我一个错误:

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

Try appending -extra-arg=-Wno-unknown-warning-option to clang-tidy command line.尝试将-extra-arg=-Wno-unknown-warning-option附加到 clang-tidy 命令行。

Using -extra-arg= asks clang-tidy to pass -Wno-unknown-warning-option to the underlying clang.使用-extra-arg=要求 clang-tidy 将-Wno-unknown-warning-option传递给底层 clang。 Otherwise, it tries to interpret it as a clang-tidy flag.否则,它会尝试将其解释为一个清晰的标志。

Edit:编辑:

The run-clang-tidy.py script supports -extra-arg starting version 5.0. run-clang-tidy.py脚本从 5.0 版开始支持run-clang-tidy.py -extra-arg In prior versions, you'd need to edit the script and add that -extra-arg manually.在以前的版本中,您需要编辑脚本并手动添加-extra-arg

If you're on Ubuntu 16.04, you can get clang-tidy-5.0 from:如果您使用的是 Ubuntu 16.04,则可以从以下位置获取clang-tidy-5.0
https://www.ubuntuupdates.org/package/xorg-edgers/xenial/main/base/clang-tidy-5.0 https://www.ubuntuupdates.org/package/xorg-edgers/xenial/main/base/clang-tidy-5.0

For me,对我来说,

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

solved the issue when running clang-tidy from within CMake.从 CMake 中运行 clang-tidy 时解决了这个问题。

I had the same problem when I generated compile_commands.json using GCC.当我使用 GCC 生成 compile_commands.json 时,我遇到了同样的问题。 When I used Clang, everything is fine.当我使用 Clang 时,一切都很好。 It seems that clang-tidy/run_clang_tidy.py has a problem with processing compile_commands.json generated by a different compiler than Clang.似乎 clang-tidy/run_clang_tidy.py 在处理由不同于 Clang 的编译器生成的 compile_commands.json 时存在问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM