前言
PC-lint是一款小而强大的C/C++静态代码检查工具,它可以检查未初始化变量,数组越界,空指针等编译器很难发现的潜在错误。在很多专业的软件公司如Microsoft,PC-Lint检查无错误无警告是代码首先要过的第一关。
安装配置
有关安装步骤,请参考附录中的文章“静态代码检查工具PC-Lint“的“4 PC-Lint软件使用方法”,不过该文章使用的是VC++ 6.0的开发环境,最新的PC-lint 9.0支持VS2008,可以在安装过程中自己选择。
关于PC-lint和VS2008的集成,请参考PC-Lint安装目录下的env-vc9.lnt文件,里面讲解的非常之详细,不必参考“静态代码检查工具PC-Lint”这篇文章中的该段内容(如果你的E文不是很好,那参考一下中文还是有帮助的)。
在env-vc9.lnt文件中的Simple Check部分,有如下一段内容:
Arguments: -i"c:/lint" std.lnt env-vc9.lnt "$(ItemFileName)$(ItemExt)"
建议使用以下一段新的Arguments:
Arguments: -i"c:/lint" std.lnt env-vc9.lnt "$(ItemDir) $(ItemFileName)$(ItemExt)"
作用是在检查代码的生成结果中,可以双击某一个检查结果直接定位到代码中的某一行,缺点是检查结果会更长一点,因为它使用了全路径。
依照env-vc9.lnt的说明配置完成后,在VS2008的Tools菜单下会有四个PC-lint的选项,如下图所示。
常见错误
1. 在PC-lint的Configuration向导结束后,会在PC-lint的安装目录下生成std.lnt文件,里面有一行:
options.lnt -si4 -sp4
如果按照“静态代码检查工具PC-Lint“走完所有的标准配置的话,options.lnt会自动生成,但无内容(注释除外),如果中间某一步skip了,可能该文件就不会生成,这时就需要手动创建一个options.lnt文件,或在std.lnt中注释掉options.lnt,否则会在使用PC-lint时会出现找不到options.lnt的错误。
PC-lint的安装包下面还有一个options.lnt文件(非自带),可以直接拷贝到PC-lint安装路径下替换掉原来的文件,里面我已经加了一些屏蔽错误项作为示例。
2. 在使用PC-lint的过程当中,如果发生某个库头文件找不到的错误,可以打开std.nt文件,在后面添加该头文件所在的全路径,格式如下:
-i"D:/WinDDK/7600.16385.0/inc"
3. PC-lint不支持Unicode Codepage 1200和1201,请使用Unicode (UTF-8 with signature) - Codepage 65001.
使用PC-lint
在安装完并配置成功之后,使用PC-lint可以说是易如反掌,只要打开一个VC++工程,单击“Tools”菜单下的四个PC-lint选项即可,以下是这四个选项的使用区别:
1. PC-lint (Simple Check)
只能对单个文件进行检查。
打开一个cpp文件(或头文件),单击PC-lint (Simple Check)即可。
2. PC-lint (Project Creation)
创建工程的文件列表。
打开一个VC++工程,单击PC-lint (Project Creation),然后会有一个(工程名).lnt文件生成到该工程目录下。打开检查一下是否包含了所有的源文件,可以手动修改。
3. PC-lint (Project Check)
对整个工程进行代码检查。
在(工程名).lnt创建以后,直接单击PC-lint (Project Check)即可。
4. PC-lint (Unit Check)
对单个文件进行检查,但是应用了PC-lint (Project Creation)生成的(工程名).lnt文件中的-d和-i选项。
打开一个cpp文件(或头文件),单击PC-lint (Unit Check)即可。
总结
准备好了吗,还不立马赶在领导之前去检查一下你的代码!!!
附录
静态代码检查工具PC-Lint
http://blog.chinaunix.net/u/30686/showart_408389.html
PCLint使用介绍
http://blog.csdn.net/lbqBraveheart/archive/2010/05/17/5602391.aspx