腾讯云代码分析—Clang-Tidy-16工具配合编译数据库使用 #1187
xiohuang9
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
工具介绍
Clang-Tidy-16是一款强大的C++静态分析工具,能够自动检测代码中的问题并提供修复建议,为了更高效通常会结合编译数据库(Compile Database)来使用。
Clang-Tidy-16是基于Clang提供的AST(抽象语法树)框架实现的。通过遍历AST来进行代码分析。AST是源代码的一种抽象表示,将代码转化为一棵语法树,帮助分析器理解代码的结构、语义和逻辑。在默认情况下,Clang-Tidy-16会直接使用Clang内置的AST来进行代码分析。
编译数据库使用说明
使用方式
clang-tidy工具在执行时可以指定文件的编译命令,如下:
对于一个项目来说,可以生成一个compile_commands.json文件(包含每个文件的编译命令)如下:

然后在工具运行时使用 -p 参数指定该文件,对每个文件分析时,会自动寻找对应的编译命令,这种指定了项目编译命令的方式,所生成的AST可以更准确地反映源代码的语义和结构,从而提高分析的精度和准确性
生成方式
直接在项目根目录下生成compile_commands.json文件,基于项目不同的构建方式,生成该文件的步骤不同:
使用cmake进行构建的项目,可以在项目根目录下使用如下命令:
对于使用makefile进行构建的项目:
使用 bear 工具 :bear <编译命令>, 如:bear make
工具使用说明
进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜工具名->选择批量添加工具规则

联系我们
欢迎访问我们的平台:腾讯云代码分析

使用文档:腾讯云代码分析帮助文档
持续为您的代码助力!
扫描可进开源群畅聊技术&答疑解惑
Beta Was this translation helpful? Give feedback.
All reactions