腾讯云代码分析—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
-
工具介绍
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