CppCheck代码检测工具

http://www.cppfans.org/1101.html

我们在写代码的时候通常会犯两样低级错误,这种低级错误和那种低级错误。在编译的时候可能不会报错,但是在程序运行的时候就会发现很奇怪的结果,莫名其妙,如果不仔细点查找可能就让我们焦头烂额。
其实可能是一个简单的指针没有释放的问题,亦或是一个赋值写错了的问题,而CppCheck这个工具可以为我们的静态代码检测语法错误和内存泄露等问题。
CppCheck简介:

 

 

 

Cppcheck – A tool for static C/C++ code analysis

Overview

Cppcheck is an analysis tool for C/C++ code. Unlike C/C++ compilers and many other analysis tools, we don’t detect syntax errors. Cppcheck only detects the types of bugs that the compilers normally fail to detect. The goal is no false positives.

We recommend that you enable as many warnings as possible in your compiler.
If you use Visual C++: you should use warning level 4.
If you use GCC: take a look at Warning options – using GCC
If you use another compiler: look in the manual.

Supported platforms:

  • You can check non-standard code that includes various compiler extensions, inline assembly code, etc.
  • Cppcheck is supposed to be compilable by any C++ compiler which handles the latest C++ standard.
  • Cppcheck is supposed to work on any platform that has sufficient cpu and memory.

cppcheck的使用方法可能是代码工具中最简单的了,说一下使用方法。
1.下载CppCheck   CppCheck下载地址

2.下载完后是一个MSI的安装包,安装之后,安装目录下有两个工具,一个是带界面的程序(cppcheckgui.exe),一个是console程序(cppcheck.exe)

3.

cppcheckgui.exe的使用方法

点击工具栏的第一个图标,是加载文件夹,也就是你的项目文件夹,加载完成后它会自动检测所有可能的问题并列出来,然后选择File->Save results to file,检测结果如下图
cppcheckgui

 cppcheck.exe的使用方法

通过命令行进入cppcheck的安装目录并输入以下命令

cppcheck D:/Project/XXX(文件夹完整路径)  2>error.txt

会将错误生成在安装目录下名为error.txt的文件中,方便查看,结果如下:

[D:\Studio\BKWin\BKWin\resource.h:1]: (error) The code contains characters that are unhandled. Neither unicode nor extended ASCII are supported. (line=1, character code=ff)
[D:\Studio\BKWin\BKWin\resource.h:1]: (error) The code contains characters that are unhandled. Neither unicode nor extended ASCII are supported. (line=1, character code=fe)

可以看到两种方法检测到的结果是一样的。

cppcheck支持的编译器有很多种,分别如下:

=========
Cppcheck
=========
About

The original name of this program is “C++check” but it was later changed to “cppcheck”.

Manual

A manual is available online:

http://cppcheck.sf.net/manual.pdf

Compiling

Any C++ compiler should work.

To build the GUI, you need Qt.

When building the command line tool, PCRE is normally used.
PCRE is optional.

There are multiple compilation choices:
* qmake – cross platform build tool
* Windows: Visual Studio
* Windows: Qt Creator + mingw
* gnu make
* g++

qmake
=====
You can use the gui/gui.pro file to build the GUI.
cd gui
qmake
make

Visual Studio
=============
Use the cppcheck.sln file. The rules are normally enabled.

To compile with rules (pcre dependency):
* the pcre dll is needed. it can be downloaded from:

http://cppcheck.sf.net/pcre-8.10-vs.zip

To compile without rules (no dependencies):
* remove the preprocessor define HAVE_RULES from the project
* remove the pcre.lib from the project

Qt Creator + mingw
==================
The PCRE dll is needed to build the CLI. It can be downloaded here:

http://software-download.name/pcre-library-windows/

gnu make
========
To build Cppcheck with rules (pcre dependency):
make HAVE_RULES=yes

To build Cppcheck without rules (no dependencies):
make

g++ (for experts)
=================
If you just want to build Cppcheck without dependencies then you can use this command:
g++ -o cppcheck -Ilib cli/*.cpp lib/*.cpp

If you want to use –rule and –rule-file then dependencies are needed:
g++ -o cppcheck -lpcre -DHAVE_RULES -Ilib -Iexternals cli/*.cpp lib/*.cpp externals/tinyxml/*.cpp
mingw
=====
make LDFLAGS=-lshlwapi

Cross compiling Win32 (CLI) version of Cppcheck in Linux

sudo apt-get install mingw32
make CXX=i586-mingw32msvc-g++ LDFLAGS=”-lshlwapi”
mv cppcheck cppcheck.exe

Webpage

http://cppcheck.sourceforge.net/

我们可以不用担心写出来的简单错误了,用它很轻松就检测出来了,非常容易使用,写代码的朋友,可以去试试了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cppcheck 是一个开源的静态代码分析工具,用于检查 C/C++ 代码中的各种错误和潜在问题。它可以帮助开发者在编译之前发现并纠正代码中的常见错误,以提高代码质量和可靠性。 下面是 Cppcheck 的一些主要特点和功能: 1. 静态代码分析:Cppcheck 使用静态分析技术来检查代码,而无需实际运行程序。它会对代码进行语法分析、数据流分析和控制流分析,以发现潜在的问题。 2. 错误检查:Cppcheck 可以检测出诸如空指针解引用、内存泄漏、不正确的类型转换、未初始化的变量、数组越界访问等常见错误。 3. 代码风格检查:除了错误检查外,Cppcheck 还可以帮助开发者遵循一致的代码风格和最佳实践。它可以检查缩进、命名约定、注释等方面的风格问题,并提供相应的建议。 4. 多平台支持:Cppcheck 可以在多个平台上运行,包括 Windows、Linux 和 macOS。它支持对 C 和 C++ 代码的分析,并与各种开发环境和构建系统集成。 5. 定制化配置:Cppcheck 提供了丰富的配置选项,可以根据项目的具体需求进行定制。开发者可以选择要检查的错误类型、排除特定文件或目录,以及设置警告级别等。 6. 命令行和图形界面:Cppcheck 提供了命令行界面和图形界面两种使用方式。命令行界面适合集成到自动化构建过程中,而图形界面则提供了更直观的交互方式。 总之,Cppcheck 是一个强大的静态代码分析工具,可以帮助开发者发现和修复 C/C++ 代码中的各种错误和问题。它对于提高代码质量、减少潜在的漏洞和提升软件可靠性非常有价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值