PC-lint简明教程(CC++静态代码检查工具)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PC-lint简明教程(CC++静态代码检查⼯具)
前⾔
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
PCLint使⽤介绍
/harbinzju/article/details/5844221。

相关文档
最新文档