基于misra-c-2012规则在vscode下集成cppcheck开源工具实现代码静态检查

本文介绍了如何下载和安装cppcheck工具,以及在vscode中配置C/C++AdvancedLint扩展来禁用部分代码检查工具。接着,详细讲述了如何启用cppcheck的MISRA-C规则,包括下载规则文件、创建misra.json配置文件,并使用python脚本来运行misra检查。最后,文章展示了在vscode中查看代码错误的方法。
摘要由CSDN通过智能技术生成

前言

依赖工具:
1、cppcheck工具
2、vscode下安装C/C++ Advanced Lint扩展
3、python工具

一、 cppcheck下载安装

1、 下载cppcheck工具安装包:http://cppcheck.net/

在这里插入图片描述

2、双击安装包:

在这里插入图片描述

双击后软件自行安装在:C:\Program Files\Cppcheck

3、 添加cppcheck系统路径:

添加系统路径步骤

4、下载cppcheck源码:Github官网下载链接

5、将下载后的cppcheck源码中的“addons”文件夹拷贝到cppcheck工具安装目录C:\Program Files\Cppcheck下

在这里插入图片描述

二、 vscode下安装C/C++ Advanced Lint扩展

1、vscode软件下在扩展页面搜索C/C++ Advanced Lint后安装

>代码如下(示例):

2、 配置C/C++ Advanced Lint扩展

2.1、在vscode软件中点击设置按钮,选择“设置”选项

在这里插入图片描述

2.2、搜索“@ext:jbenden.c-cpp-flylint”然后“settings.json”中编辑

在这里插入图片描述

2.3、在settings.json中添加这几行配置关闭flexelint,lizard,flawfinder,clang这4行代码检查工具,也可以在页面上取消勾选这几个选项

"c-cpp-flylint.clang.enable": false,
"c-cpp-flylint.flexelint.enable": false,
"c-cpp-flylint.lizard.enable": false,
"c-cpp-flylint.flawfinder.enable": false,

保存之后,可以看到下方有cppcheck自己的一个校验了

在这里插入图片描述

2.4、添加MISRA-C规则的配置,将Cppcheck的addon配置成misra,然后保存

在这里插入图片描述

2.5、在C盘的根目录下面添加MISRA_C_2012.txt文件,这个文件就是misra 2012校验规则,该文件可以从网上下载

在这里插入图片描述

2.6、添加该文件后,如果想看到具体的misra报错提示,还需要创建一个misra.json文件,写入如下内容:

在这里插入图片描述
注:“args”参数中的文件路径就是2.5步骤中存放MISRA_C_2012.txt文件的c盘路径;
misra.json文件可以放在一个你喜欢的路径下边,但和MISRA_C_2012.txt文件一样,不要放在c: \Program Files\路径下,(尽量不要把开发用的软件装到Program Files路径下面,会有莫名其妙的问题),本次实验中把这两个文件都放在了c盘根目录下面:
在这里插入图片描述

2.7、这里因为做实验原因,创建了一个测试文件test.c

在这里插入图片描述

三、python安装

1、官网下载python:python官网

在这里插入图片描述

2、实验过程中选择的是3.8.5,最新版本应该也是可以的:

在这里插入图片描述

3、双击下载好的安装包:python-3.8.5-amd64.exe,勾选add添加python路径选项,然后点击“install now”

在这里插入图片描述
勾选上的话,就省去了添加环境变量的步骤

3、 win + R打开dos窗口或者在任务栏点击搜索小图标打开搜索“cmd”打开命令提示符

4、 输入“python”能看到版本,即说明安装成功

在这里插入图片描述

5、在dos窗口下输入存放代码文件的路径:

在这里插入图片描述

6、输入cppcheck --dump test.c:

在这里插入图片描述
可以看到cppchek检验到的代码错误

7、 输入如下命令:

python “c:\ProgramFiles\Cppcheck\addons\misra.py” --rule-texts=MISRA_C_2012.txt test.c.dump

注:双引号内容是执行检测的python脚本;–后边的是misra 2012规则

在这里插入图片描述
该规则在misra.py脚本中执行成功了

8、 回到vscode下边,可以看到该测试文件下的语法错误,新建其他文件也是可以,且能看到具体的报错原因

在这里插入图片描述
注:如果对英文提示不熟悉,可以对照着MISRA_C_2012.txt文件中的每条规则查看一下,网上也有该规则的中文释义。

  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值