【问题标题】:Clang-Tidy - Android Studio 4.1.1Clang-Tidy - Android Studio 4.1.1
【发布时间】:2021-05-18 18:34:42
【问题描述】:

真的很难找到文档/示例,所以我想联系。

我的目标: 我希望 clang-tidy 生成一份报告,我最终可以提交给 sonarqube 进行分析。

设置场景: 我有一个混合了 Java 和 C++(使用 JNI)的 Android 项目。 我移植的是旧版 C++(11 版之前),并在构成项目的多个文件中使用 CMake 进行编译。 在编辑我的代码时,我可以看到 clang-tidy 在识别我编码时的“静态”问题方面做得很好,例如

clang-tidy at work

问题: 作为构建的一部分,我找不到任何关于如何运行 clang-tidy 的特定文档或示例。 Android Studio 显然是通过它的“插件”运行它以突出显示“on-the-fly”,所以它一定已经在做我需要的事情 - 但我只是看不出如何开始获取报告。

我的尝试:

  1. Analyze->Run Inspection By Name->Clang-tidy... 这在整个项目上运行,但与我从“即时”分析中看到的数量相比产生了少量问题。李>
  2. CMAKE_CXX_CLANG_TIDY 添加到我的顶级 CMakelists.txt 和我的 build.gradle (externalNativeBuild) - 具有各种不同的选项,包括“-checks=-,clang-analyzer-*,-clang-analyzer-cplusplus**”
  • 这似乎几乎可以工作,但我只是得到一个与查找相关的错误: Android\Sdk\ndk\21.3.6528147\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\c++\v1\cstddef:44:15: 错误: 'stddef.h' 文件未找到 [ clang-diagnostic-error]
  1. 研究.. 完成了我通常在互联网上的拖网搜索 - 我要么在做一些疯狂的事情,要么唯一尝试这样做的人将他们的方法保密!

在这里迫切需要任何帮助,感觉这很微不足道,但我的组织中没有人尝试过这样的事情。

【问题讨论】:

  • 1 听起来像是一个值得归档的错误。

标签: android c++ cmake android-ndk clang-tidy


【解决方案1】:

set(CMAKE_CXX_CLANG_TIDY ${ANDROID_TOOLCHAIN_ROOT}/bin/clang-tidy -checks=*) 适用于我的 NDK r23 beta 1。我在构建时看到命令行上出现了整齐的故障,但没有看到您提到的错误。大概是您不小心使用了主机的 clang-tidy 而不是 NDK,因此它无法找到 NDK 标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2019-08-05
    • 1970-01-01
    • 2021-09-06
    • 2018-10-01
    • 2021-04-11
    • 1970-01-01
    相关资源
    最近更新 更多