静态代码检查工具 cppcheck

栏目: C++ · 发布时间: 6年前

内容简介:CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个工具检查我们写的代码是否安全和健壮,是否有隐藏的问题。比如无意间写了这样的代码:这完全是符合语法规范的,但是静态代码检查工具会提示此处会溢出。也就是说,它是一个更加严格的编译器。目前使用比较广泛的C/C++静态代码检查工具有cppcheck 和 pc-lint等。pc-lint是资格最老,最强力的代码检查工具,但是是收费软件
编辑推荐:
本文来自于testerhome.com,本文主要目的是详细介绍一下sonar环境的搭建,网上有很多的资料介绍环境配置,笔者在 Linux 和Mac环境搭建过程中都踩过坑,便记录一二。

CppCheck是一个C/C++代码缺陷静态检查工具。不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误。所谓静态代码检查就是使用一个 工具 检查我们写的代码是否安全和健壮,是否有隐藏的问题。

比如无意间写了这样的代码:

int n = 10;

char* buffer = new char[n];

buffer[n] = 0;

这完全是符合语法规范的,但是静态代码检查工具会提示此处会溢出。也就是说,它是一个更加严格的编译器。目前使用比较广泛的C/C++静态代码检查工具有cppcheck 和 pc-lint等。pc-lint是资格最老,最强力的代码检查工具,但是是收费软件,并且配置起来有一点点麻烦。

CppCheck 是免费的开源软件。使用起来也很方便。

从 http://cppcheck.sourceforge.net/ 下载最新的cppcheck。

使用方式:

一、GUI方式:安装完就可以使用里面的cppcheck-gui来检测代码。界面如下:

静态代码检查工具 cppcheck

二、命令行方式:

静态代码检查工具 cppcheck

三、集成到IDE开发环境中使用:

1、VS

参考这里(http://avitebskiy.blogspot.tw/2012/10/poor-mans-visual-studio-cppcheck.html),可以方便的把cppcheck嵌入到vs,然后可以方便的对一个文件进行检查,而且支持错误跳转。

click the Add button

set the Title, for example Cppcheck

set Command to C:\Program Files (x86)\Cppcheck\cppcheck.exe

set Arguments to --quiet --verbose --template=vs $(ItemPath)

set Initial Directory to $(ItemDir)

make sure Use Output window checkbox is enabled

click on the Move Up button repeatedly until your entry is at the top of the list, this will make it easier to identify you new command as you can count on it being calledTools.ExternalCommand1

click OK.

2、Qt Creator

在QtCreator中点击:tools=>external=>config...=>add 弹出如下对话框:

静态代码检查工具 cppcheck

填入下列参数:

静态代码检查工具 cppcheck

设置完后就可以用cppcheck检查指定目录下的代码文件:tools=>external=>cppcheck 开始检查。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java数据结构和算法

Java数据结构和算法

拉佛 / 计晓云 / 中国电力出版社 / 2004-02-01 / 55.00元

《Java数据结构和算法》(第2版)以一种易懂的方式教授如何安排和操纵数据的问题,其中不乏一些难题:了解这些知识以期使计算机的应用获得最好的表现。不管使用何种语言或平台,掌握了数据结构和算法将改进程序的质量和性能。 《Java数据结构和算法》(第2版)提供了一套独创的可视讨论专题用以阐明主要的论题:它使用Java语言说明重要的概念,而避免了C/C++语言的复杂性,以便集中精力论述数据结构和算法。经......一起来看看 《Java数据结构和算法》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具