CppCheck C++静态代码检查工具在Visual Studio(VS)下的配置和使用

CppCheck C++静态代码检查工具在Visual Studio(VS)下的配置和使用本文介绍如何在 VisualStudio VS 下使用 CppCheck 检查代码 包括安装和使用两个部分 与网上通过 vs 外部工具使用 CppCheck 的方法不同 本文介绍了 CppCheck 的 vs 插件 配置更方便 使用体验更好

摘要

本文介绍如何在Visual Studio(VS)下使用CppCheck检查代码,包括安装和使用两个部分。与网上通过vs外部工具使用CppCheck的方法不同,本文介绍了CppCheck的vs插件,配置更方便,使用体验更好。


介绍

Cppcheck是一个C/C++代码的静态分析工具。与C++编译器和其他许多分析工具不同,Cppcheck不检测代码中的语法错误,只检测那些编译器通常无法检测到的bug类型,目的是只检测代码中真正的错误。下面是Cppcheck的一些检查项:

  • 检查边界溢出
  • 检查内存泄漏
  • 检查可能的空指针间接引用
  • 检查未初始化的变量
  • 检查无效的STL使用
  • 检查异常安全
  • 警告如果过时的或者不安全的函数使用
  • 警告未使用的或者冗余的代码
  • 检测各种潜在bugs的可疑代码等
    所有检查项可以查看这里:https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/

CppCheck使用方法:

  1. 命令行调用
  2. 可视化界面使用
  3. 作为外部工具使用。若开发工具支持外部工具扩展,可手动配置为外部工具使用
  4. 作为插件使用。若开发工具包含CppCheck插件,可作为插件使用

本文使用第四重方法,通过插件使用CppCheck。 CppCheck在许多流行的开发工具上已经有对应插件,例如:Visual Studio、Code::Blocks、CLion 、QtCreator 、KDevelop 、Git (Linux)等,完整插件支持看这里:http://cppcheck.net/

安装

  1. 安装CppCheck
    在CppCheck官网下载并安装, 本文下载的是cppcheck-1.87-x64-Setup.msi。

  2. 接着安装vs插件
    在cppcheck-vs-addin下载并安装vs插件,本文下载的是CppcheckPlugin_1.3.6.vsix。
    注意: vs的CppCheck插件不包含CppCheck本身,因此需要先安装CppCheck再安装CppCheck的vs插件。详情见cppcheck-vs-addin的说明:




NOTE: The add-in does not deploy Cppcheck executable. Please, go to Cppcheck website, download the installer and install it before first use of the add-in. The add-in then may prompt for location of the cppcheck.exe.

  1. 安装完毕
    重启vs,安装完毕,接下来看如何使用。

使用

使用一段测试代码,测试一下CppCheck效果。

使用的测试代码:

int main() { 
     int array_temp[100]; int a = array_temp[200]; } 

测试结果:

  1. vs编译结果(编译通过,未提示错误):
    vs未检查出访问越界错误

  2. CppCheck结果:
    点击 工具 选择 Check current project with cppcheck
    vs使用CppCheck对代码静态分析
    检查出了编译器未检查出的访问越界错误:
    CppCheck检查出了数组访问越界错误








相关/参考链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222358.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:57
下一篇 2026年3月17日 下午3:58


相关推荐

  • 上传文件块client实现

    上传文件块client实现

    2022年1月7日
    52
  • navicat premium激活码失效(JetBrains全家桶)「建议收藏」

    (navicat premium激活码失效)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月26日
    136
  • 图书销售管理系统概要设计,系统数据结构设计分工

    图书销售管理系统概要设计,系统数据结构设计分工完成人:千城墨白(20160401095)无法无天(20160401115)系统数据结构设计1、逻辑结构设计要点2、物理结构设计要点(1)系统所用到所有数据均存在服务器端,存于SQLServer服务器中;(2)系统界面的显示属性,如字体属性,样式等使用CSS统一界面;(3)系统界面中使用的相关图片需要保存在服务…

    2022年5月13日
    42
  • 有向无环图VS树

    有向无环图VS树有向无环图 VS 树前言 Big man 在看着终极算法的时候 突然一个和要好的朋友抛出了一数据结构有关的问题 有向无环图 VS 树 Big man 想着他们之间有什么差别了 虽然这样想着 但是 Big man 还是想着需要去分析一下的 有向无环图 定义 Big man 首先得去把有向无环图的定义给出 简单的定义 一个无环的有向图 英文称为 Directedacyc 简称 DAG 图

    2026年3月19日
    1
  • 最火的C语言编程软件,适合编写C语言代码的编程软件有哪些

    最火的C语言编程软件,适合编写C语言代码的编程软件有哪些C语言基本上是大学计算机及其相关专业在大一上学期就会开的一门课程,但是很多学生就是在大一上学期期末的时候很着急,因为自己完全没有学好C语言,感觉一学期白学了,其实究其主要原因,还是因为你在上课认真听了,也做了课堂作业,但是却没有在课后好好的自己去主动敲代码,笔者不能让你有多主动去自己实践,但是笔者可以给你介绍几款更好的写代码的软件(手机电脑都可以)。C语言作为一门起源比较早的编程语言,可以编程的手…

    2022年5月29日
    72
  • pycharm 2021.2.3激活码(已测有效)

    pycharm 2021.2.3激活码(已测有效),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    1.4K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号