首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >腾讯云代码分析—Clang-Tidy-16工具配合编译数据库使用

腾讯云代码分析—Clang-Tidy-16工具配合编译数据库使用

作者头像
CodeDog
发布2024-10-11 14:15:04
发布2024-10-11 14:15:04
5250
举报

官网地址:(点击最下方【阅读原文】可直达)https://tca.tencent.com/

官网介绍:https://cloud.tencent.com/product/tcap 官方开源:https://github.com/Tencent/CodeAnalysis 国内镜像:https://git.code.tencent.com/Tencent_Open_Source/CodeAnalysis

工具介绍

Clang-Tidy-16是一款强大的C++静态分析工具,能够自动检测代码中的问题并提供修复建议,为了更高效通常会结合编译数据库(Compile Database)来使用。

Clang-Tidy-16是基于Clang提供的AST(抽象语法树)框架实现的。通过遍历AST来进行代码分析。AST是源代码的一种抽象表示,将代码转化为一棵语法树,帮助分析器理解代码的结构、语义和逻辑。在默认情况下,Clang-Tidy-16会直接使用Clang内置的AST来进行代码分析。

编译数据库使用说明

使用方式:

Clang-Tidy-16工具在执行时可以指定文件的编译命令,如下:

代码语言:javascript
复制
clang-tidy test.cpp -- -Imy_project/include -DMY_DEFINES ...

对于一个项目来说,可以生成一个compile_commands.json文件(包含每个文件的编译命令)如下:

然后在工具运行时使用 -p 参数指定该文件,对每个文件分析时,会自动寻找对应的编译命令,这种指定了项目编译命令的方式,所生成的AST可以更准确地反映源代码的语义和结构,从而提高分析的精度和准确性

生成方式:

直接在项目根目录下生成compile_commands.json文件,基于项目不同的构建方式,生成该文件的步骤不同:

使用cmake进行构建的项目,可以在项目根目录下使用如下命令:

代码语言:javascript
复制
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1

对于使用makefile进行构建的项目:

使用 bear 工具 :bear <编译命令>, 如:bear make

工具使用说明

进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜工具名->选择批量添加工具规则

关注我们,持续为您的代码助力!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云代码分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工具介绍
  • 编译数据库使用说明
  • 工具使用说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档