clang-tidy -fix不应用任何更改

时间:2018-11-07 18:10:45

标签: clang-tidy

我正在使用以下命令运行clang-tidy

run-clang-tidy.py -checks="-*,cppcoreguidelines-*,hicpps-*" -header-filter=".*" -fix"

(或clang-tidy -checks="-*,cppcoreguidelines-*,hicpps-*" -header-filter=".*" -fix"也可以)

这将返回很多错误。自从我添加了applying fixes...选项以来,它还在终端中显示-fix

我的问题是,对于cppcoreguidelines-*hicpps-*的修复程序未应用,仅显示。我选择不支持解决1000个问题的支票吗?

2 个答案:

答案 0 :(得分:1)

您应该使用-fix-errors选项,而不仅仅是-fix。如果存在编译器错误,则后者将不会应用任何修复程序。 参见clang-tidy documentation

  -fix                          -
                                  Apply suggested fixes. Without -fix-errors
                                  clang-tidy will bail out if any compilation
                                  errors were found.
  -fix-errors                   -
                                  Apply suggested fixes even if compilation
                                  errors were found. If compiler errors have
                                  attached fix-its, clang-tidy will apply them as
                                  well.

答案 1 :(得分:0)

我在尝试通过 LLVM 的 run-clang-tidy python 脚本自动应用 clang-tidy 修复时也遇到了同样的问题:

问题的根源 对我来说,run-clang-tidy.py scriptclang-tidyclang-apply-replacements 的版本不匹配。 后者是版本 10 而不是 11,因此安装 clang-tidy-11 并将 clang-apply-replacements 链接到 clang-apply-replacements-11 为我解决了这个问题。我还从 LLVM 的存储库中下载了带有匹配标签的 run-clang-tidy 脚本。

这也是造成您问题的原因吗? 如果报告的版本不匹配,类似的步骤也可能会解决您的问题。

clang++ --version
clang-tidy --version
clang-apply-replacements --version