首页 > Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy

Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy

Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy

原文连接:

https://blog.csdn.net/wsj18808050/article/details/79824619

内容:

QtCreator在前几天发布了4.6.0的版本,增加了两个非常棒的新功能,分别是Clang-Tidy和Clazy

官方的blog链接:

Qt Creator 4.6.0 released

这些功能能够帮助我们更好的检查C++代码,甚至是一键纠正,具体的特性和好处不在累述,网上太多了,有兴趣可以自行搜索。

所有的代码检查配置,因人而异,请根据自己需求,做调整。检查项不是越多越好

代码检查会略微拖慢QtCreator的运行速度,但是我觉得这是值得的

安装QtCreator4.6.0

目前4.6.0的QtCreator还没有整合在任何一个Qt的安装包里,所以需要自行下载,链接如下:

Index of /official_releases/qtcreator/4.6/4.6.0

开启这些功能

打开ClangCodeModel

Windows & Linux:顶部菜单帮助 -> 关于插件 -> 勾选

macOS:顶部菜栏左侧Qt Creator -> 关于插件 -> 勾选

这里写图片描述

设置Clang-Tidy

Windows & Linux:顶部菜单工具 -> 选项 -> C++ -> Code Model

macOS:顶部菜栏左侧Qt Creator -> 偏好设置 -> C++ -> Code Model

默认的Configuration是不能修改的,所以点击右边的“Copy…”按钮复制一个,然后进行自定义,我的配置如下,只开启了4个:

这里写图片描述

现在clang-tidy实现有100+个check,请查看list列表。根据check不同种类(从check名字的前缀就能知道哪一类),分为如下几大类:

boost 检测boost库API使用问题

cert 检测CERT的代码规范

cpp-core-guidelines 检测是否违反cpp-core-guidelines

google 检测是否违反google code style

llvm 检测是否违反llvm code style

readability 检测代码上相关问题,但又不明确属于任何代码规范的

misc 其它一些零碎的check

mpi 检测MPI API问题

modernize 把C++03代码转换成C++11代码,使用C++11新特性

performance 检测performance相关问题

设置Clazy

我调整到了Level 1,如下:

这里写图片描述

设置好后最好是重启一下QtCreator

使用

我随便找了一个以前写的C++代码,一下子就查出一堆问题,如下:

这里写图片描述

其中代码右侧有电灯泡icon的,是可以一键自动修改的,点击电灯泡后可以看到这里有两个建议:

这里写图片描述

一键修复后代码如下:

这里写图片描述

总结

Clang-Tidy和Clazy都是很好的静态代码分析工具,一方面能够规范代码质量,让开发者准守标准,使代码更加严谨。另外一方面,很多问题能够及时的通过代码检查暴露出来,在运行,甚至是编译之前就提示开发者进行修复。小部分情况下还能够在很多地方给出性能优化的建议。总之是一举多得,开发必备良品。

检查项目代码

点击 clang static analyzer

在这里插入图片描述

在项目debug页面就能看到输出

在这里插入图片描述

更多相关:

  • THE START更新堪称轻量级MATLAB的一款软件最新版-Maplesoft Maple 2019.2 中文版。Maple是符号和数字计算环境,也是一种多范式编程语言,由Maplesoft开发,还涵盖了技术计算的其他方面,包括可视化,数据分析,矩阵计算和MATLAB连接。MapleSim工具箱添加了用于多域物理建模和代码生成的...

  • 同学们,你们在学习他人的代码,是否见过这样的代码 def main(): def user_info(gender): 当你还是个小萌新时,你一定会认为这是个很牛逼的语法。 当你有了一点基础时,你一定会想要了解这个语法,并且尝试去使用它。 那么今天,我们便来了解这个牛语法。 有了一点点的python基础,我们来看这段代...

  •     自从用了这些快捷键,鼓励师也不需要了,代码开发效率蹭蹭提升!!! ctrl+shift+[折叠代码 (这个比ctrl+k ctrl+l、ctrl+k ctr+j不知道好用多少倍!) ctrl+shift+]展开代码 ctrl+shift+T打开手贱不小心关掉的窗口 【推荐】ctrl+shift+O打开当前文件...

  • 在提交代码之前,建议最好先Fetch代码下来(如果有冲突,系统会提示),然后再操作Merge到本地分支,这样做是为了避免有其他人同时修改了当前分支,如果直接用Ctrl+T(pull代码)极有可能覆盖本地分支最新代码,安全起见先Fetch代码(Ctrl+Alt+Shift+1)——所谓:小心驶得万年船!...

  • 每次复制代码时,如果代码里有 // 这样的注释就容易让格式乱掉,通过下面的设置就可以避免这种情况。 粘贴代码时取消自动缩进 VIM在粘贴代码时会自动缩进,把代码搞得一团糟糕,甚至可能因为某行的一个注释造成后面的代码全部被注释掉,我知道有同学这个时候会用vi去打开文件再粘贴上去(鄙人以前就是这样),其实需要先设置一下 s...

  • 无论是aruco还是apriltag二维码标定板检测的思路是提取一块四边形的区域,这个区域具有比周围亮度更低的特点。这个思路的主要优点是尽可能多的检测出所有可能的二维码,但是根据采集数据的环境极有可能出现异常线段,然后再根据二维码的编码值可以对野值进行剔除实现识别与定位。ArUcoArUco是一个开源的小型的AR虚拟现实增强库,已经...

  • 首先我们知道Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主,那么PCL中也是利用这一思想来进行行人的检测, 总体思路: 1、提取...

  • 文章目录环检测在图数据结构中的应用深度/广度优先 检测环并查集数据结构 (Union-Find)基本概念初始化合并 union查找祖先优化1: 合并过程 利用 rank 优化路径优化2: 路径压缩(Path Compression)并查集 解决图中检测环问题...

  • /*隐藏输入框光标*/ input {color: transparent;text-shadow: 0 0 0 white; /*这里设置字体颜色*/ }...