Cppcheck是一个检查c/c++代码的静态代码审查工具,不像c/c++的编译器和许多其它代码分析工具一样,它不是用来检测代码的语法错误。Cppcheck只检测编译器通常不能检测到的一些bug。它的目标是使程序不存在错误。之前我也有使用过一个pc-lint的代码审查工具,相对来说,Cppcheck在检测的全面性没有pc-lint好,但是它贵在使用方便简单。像我这种没有人来做代码审查的公司只能靠自己通过这类方便有效的工具来提高自己代码的的质量了。我也是看了官方介绍说明,下面我就照着上面对其做一个简单的使用介绍。
一、工具下载和文档:
Cppcheck 最新更新版本下载地址:http://cppcheck.sourceforge.net/
介绍说明文档地址:http://cppcheck.sourceforge.net/manual.html#idp287040
二、简单使用说明:
首先下载安装,例如我的是安装在 D:\Cpptest\Cppcheck 目录下,要使用它必须先转到该路径下:
1.检查一个文件:cppcheck [filepath]
例如,我检查一个file1.c的文件代码,在命令工具中可以输入:D:\Cpptest\Cppcheck>cppcheck file1.c 来审查。
2.检查一个文件夹中的所有文件: cppcheck [filspath]
例如,我检查files文件下的所有文件:D:\Cpptest\Cppcheck>cppcheck files
三、错误类型严重级别分类:
error
:发现bug时提示级别。
warning :建议预防程序中产生bug的提示。
style :关系到代码整洁的编程风格提示。
performance :可以使代码运行更有效的建议提示。
portability :可移植性提示。64位兼容、可运行在不同编译器等等的移植性。
information :关于检查问题过程中的一些信息提示。
使用示例:
# enable warning messages
cppcheck --enable=warning file.c
# enable performance messages
cppcheck --enable=performance file.c
# enable information messages
cppcheck --enable=information file.c
# For historical reasons, --enable=style enables warning, performance,
# portability and style messages. These are all reported as "style" when
# using the old xml format.
cppcheck --enable=style file.c
# enable warning and information messages
cppcheck --enable=warning,information file.c
# enable unusedFunction checking. This is not enabled by --enable=style
# because it doesn't work well on libraries.
cppcheck --enable=unusedFunction file.c
# enable all messages
cppcheck --enable=all
使用相关的 enable 消息可以只输出指定的需要的信息,--enable = all是所有类型数据都打印输出。
四、将输出结果写到一个指定的文件中:
D:\Cpptest\Cppcheck>cppcheck --enable=all C:\file.c 2>D:\Cpptest\err.txt
将检查文件file.c的文件检测内容信息输入到err.txt文件中。
五、格式化输出内容格式:
D:\Cpptest\Cppcheck>cppcheck --enable=all --template=vs C:\files.c 2>D:\Cpptest\err.txt
--template=vs 就是指定以vs这种格式输出,还可以自定义输出格式,具体可以参照使用手册。
六、结合vs2010使用:
为了在VC中使用方便,先建立一个bat文件,vscppcheck.bat
cppcheck --enable=all --template=vs %1 > NUL
因为只需要cerr输出,所以cout输出到NUL.
然后在 VS->工具->外部工具 中添加:
标题:cppcheck
命令:d:\Cppcheck\vscppcheck.bat
参数:$(SolutionDir)
cppcheck --enable=all --template=vs %1 > NUL
因为只需要cerr输出,所以cout输出到NUL.
然后在 VS->工具->外部工具 中添加:
标题:cppcheck
命令:d:\Cppcheck\vscppcheck.bat
参数:$(SolutionDir)
初始化目录:d:\Cppcheck (该目录是你安装cppcheck的路径)
使用输出窗口
设好后只需点工具cppcheck菜单,就会输出代码检查结果,按<F4>可跳转到错误行。