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

这篇具有很好参考价值的文章主要介绍了基于misra-c-2012规则在vscode下集成cppcheck开源工具实现代码静态检查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

一、 cppcheck下载安装

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

vscode静态检查代码,c语言,vscode,开源,python

2、双击安装包:

vscode静态检查代码,c语言,vscode,开源,python

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

3、 添加cppcheck系统路径:

添加系统路径步骤

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

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

vscode静态检查代码,c语言,vscode,开源,python

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

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

vscode静态检查代码,c语言,vscode,开源,python

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

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

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python

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自己的一个校验了

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python

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

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

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

vscode静态检查代码,c语言,vscode,开源,python

三、python安装

1、官网下载python:python官网

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python
勾选上的话,就省去了添加环境变量的步骤

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

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

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python

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

vscode静态检查代码,c语言,vscode,开源,python
可以看到cppchek检验到的代码错误

7、 输入如下命令:

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

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

vscode静态检查代码,c语言,vscode,开源,python
该规则在misra.py脚本中执行成功了

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

vscode静态检查代码,c语言,vscode,开源,python
注:如果对英文提示不熟悉,可以对照着MISRA_C_2012.txt文件中的每条规则查看一下,网上也有该规则的中文释义。文章来源地址https://www.toymoban.com/news/detail-697235.html

到了这里,关于基于misra-c-2012规则在vscode下集成cppcheck开源工具实现代码静态检查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MISRA C-2004规则整理

    说明:为了方便对照标准的内容,标题从6.1开始 目录 6.1环境 6.2语言扩展 6.3 文档 6.4 字符集 6.5 标识符 6.6 类型 6.7 常量 6.8 声明与定义 6.9 初始化 6.10 数值类型转换 6.11 指针类型转换 6.12 表达式 6.13 控制语句表达式 6.14 控制流 6.15 switch 语句 6.16 函数 6.17 指针和数组 6.18 结构与

    2024年02月13日
    浏览(24)
  • vscode 静态语法检测插件C/C++ Advanced Lint,ubuntu20.04安装clang、cppcheck

     远程环境:ubuntu20.04 本地开发环境:windows 11  开发IDE:vscode 安装llvm     2.安装clang 3.检查是否安装成功(查看clang版本,有显示即为成功) 一、简介         cppcheck 是一种 C/C++ 代码缺陷静态检查工具。cppcheck 不检查代码中的语法错误,只检查编译器检查不出来的bug,其目

    2024年02月05日
    浏览(34)
  • 规则引擎专题---2、开源规则引擎对比

    开源的规则引擎整体分为下面几类: 通过界面配置的成熟规则引擎,这种规则引擎相对来说就比较重,但功能全,比较出名的有:drools, urule。 基于jvm脚本语言,互联网公司会觉得drools太重了,然后会基于一些jvm的脚本语言自己开发一个轻量级的规则引擎,比较出名的有,gr

    2024年02月04日
    浏览(26)
  • VSCode ESLint规则警告屏蔽方法

    举例:要屏蔽“Missing trailing comma”或“comma-dangle”警告,你可以使用ESLint的配置选项来设置规则。下面是一些方法,你可以根据自己的需求选择其中一种(这里只是举例,其他警告处理方法相同) 在你希望屏蔽警告的代码行的上方添加如下注释: 这将在下一行代码上禁用comm

    2024年02月05日
    浏览(38)
  • GIT版本号命名通用规则,开源项目版本号通用规则

    该规则对版本的迭代顺序命名做了很好的规范,其版本号的格式为 X.Y.Z(又称为Major.Minor.Patch) ,递增的规则为: 序号 格式要求 说明 X 非负整数 表示主版本号(Major),当API的兼容性变化时,X需递增。 Y 非负整数 表示次版本号(Minor),当增加功能时(不影响API)的兼容性

    2024年02月07日
    浏览(24)
  • 一款MAC下集成式的WEB开发利器——ServBay

    ServBay是一个集成式、图形化的本地化Web开发环境。 开发者通过ServBay几分钟就能部署一个本地化的开发环境。解决了Web开发者(比如PHP、Nodejs)、测试工程师、小型团队安装和维护开发测试环境的问题,同时可以快速的进行环境的升级以及维护。 ServBay还将Web服务器,数据库

    2024年03月13日
    浏览(23)
  • C++ 代码规范 cppcheck 样式修改

    /*  * style  */     1.Using C-style cast.  Use reinterpret_castchar*(...) instead  [readability/casting]         const_castchar*(BT_VER)         reinterpret_castchar*(BT_VER)     2.Do not use namespace using-directives.  Use using-declarations instead.       (不要使用命名空间using指令。请改用using声明)       

    2024年02月07日
    浏览(26)
  • 开源软件:释放创新的力量,改变数字世界的游戏规则

    在充满活力的技术领域,创新是至高无上的,有一种方法已获得显著的吸引力——开源软件。开源软件凭借其透明、协作和无限可能性的精神,彻底改变了我们开发、共享和定制应用程序的方式。从操作系统到数据分析工具,其影响跨越了多个领域。本文将带您深入了解开源

    2024年02月05日
    浏览(47)
  • CppCheck静态代码检查工具教程【Windows和Linux端】

    目录 1、背景 2、特性介绍 2.1、检查结果 2.2、检查范围 2.3、支持的检查规则(列举一些): 2.4、自定义规则 3、linux 端 4、windows 端         最近调研了几款 c/c++ 代码静态检查工具,包括 cppcheck、cpplint、cppdepend、splint、tscancode、sonaqube 等,对比后认为 cppcheck 使用起来最方

    2024年02月03日
    浏览(27)
  • 972_MISRA C 2004规范解读1

    MISRA C 2004 规范解读1 Grey 全部学习汇总: GitHub - GreyZhang/misra_c_hacking: MISRA C, I\\\'m coming! Happy hacking! MISRA C 2004 规范解读 开篇 其实,这个是一个很基础的只是体系了。但是,现在我自己在工作中用到的其实不多。主要是现在接触到的工程师水平参差不齐,加上各种各样的因素,导

    2023年04月09日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包