clang-tidy 中的自定义检查不可用

问题描述 投票:0回答:1

我想向 clang-tidy 添加自定义检查,因此我使用命令

clang-tidy/add_new_check.py misc passes
(https://clang.llvm.org/extra/clang-tidy/Contributing.html)

遵循官方文档

检查已在 CMakeLists.txt 和 MiscTidyModule.cpp 中注册

clang-tidy 仍然无法使用支票 -

clang-tidy -checks="*" --list-checks | grep passes

c++ llvm clang-tidy
1个回答
0
投票

正如评论中现在所解释的,问题是由于调用最初安装的

clang-tidy
而不是从修改后的源构建的。后者位于
$BUILD/bin/clang-tidy
中,其中
$BUILD
是运行
cmake
的目录。

为了使此问答对其他人可能更有用,我将总结一些相关的故障排除:

  • 如果

    $BUILD/bin/clang-tidy
    缺失,但存在
    $BUILD/bin/clang
    等其他程序,则问题可能是由于
    cmake
    的调用方式造成的。特别是,必须将
    -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra"
    传递给
    cmake
    才能启用
    clang-tools-extra
    项目,
    clang-tidy
    是其中的一部分。

  • 如果您有

    clang-tidy
    ,您可以在其上运行
    strings
    程序来查看自定义检查中的字符串文字是否存在于二进制文件中。如果不是,则问题可能与构建系统有关,例如
    CMakeLists.txt
    中缺少条目或无法正确重新运行构建。

  • 如果支票已链接,那么它应该出现在

    $BUILD/bin/clang-tidy -checks="*" --list-checks
    的输出中。如果没有,则问题可能出在支票的注册方式上(使用
    registerCheck
    ;参见
    ClangTidyCheckFactories
    )。

© www.soinside.com 2019 - 2024. All rights reserved.