51Testing软件测试论坛
标题:
pc-lint 资料
[打印本页]
作者:
dimang11
时间:
2008-11-25 18:03
标题:
pc-lint 资料
使用pc-lint助力symbian开发
使用pc-lint一段时间了,感觉确实对代码质量提升有很大帮助。再此,写一篇文章讲讲它在symbian开发中的使用方法。
(1)什么是pc-lint?
pc-lint是一个历史悠久,功能异常强劲的静态代码检测工具。它的使用历史可以追溯到计算机编程的远古时代(30多年以前)。经过这么多年的发展,它不但能够监测出许多语法逻辑上的隐患,而且也能够有效地帮你提出许多程序在空间利用、运行效率上的改进点,在很多专业级的软件公司,比如microsoft, pc-lint检查无错误无警告是代码首先要过的第一关,偶个人觉得,对于小公司和个人开发而言,pc-lint也非常重要,因为基于开发成本考虑,小公司和个人往往不能拿出很多很全面的测试,这时候,pc-lint的强劲功能可以很好地提高软件的质量。
pc-lint目前是支持c和c++程序的语法检查的,但很遗憾是一款商业软件(官方网站):
http://www.gimpel.com
尽管如此,google一下,会发现在可用的“free”版本很多。。。
在linux环境下有一个叫做splint的与pc-lint相似的代码静态分析工具也很好用,但是很可惜它只能支持c语言的分析。参考网址:
(2)pc-lint都有哪些功能?
1) pc-lint是一种静态代码检测工具,可以说,pc-lint是一种更加严格的编译器,不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。
2) pc-lint不但可以检测单个文件,也可以从整个项目的角度来检测问题,因为C语言编译器固有的单个编译,这些问题在编译器环境下很难被检测,而pc-lint在检查当前文件的同时还会检查所有与之相关的文件,可想而知,它会对我们有很大的帮助。
3) pc-lint支持几乎所有流行的编辑环境和编译器,比如Borland C++从1.x到5.x各个版本、Borland C++ Build、GCC、VC,VC.net、watcom C/C++、Source insight、intel C/C++等等,也支持16/32/64的平台环境。
4) 支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。
(3)如何使用pc-lint?
pc-lint下载完毕后(一般“free”的版本都是“绿色”安装版,直接解压出来一个目录即可),我这里举例子就是解压以后出来的目录是d:\lint。
进入这个lint的目录,会发现有几个主要的文件,lint.exe, lint-nt.exe等等。
此时可以从命令行进入这里面看看下载到的pc-lint是什么版本的:
C:\Documents and Settings\wayne>D:\Lint\lint-nt -v -i"D:\Lint" std.lnt
PC-lint for C/C++ (NT) Vers. 8.00x, Copyright Gimpel Software 1985-2008
我这里是打过补丁的也就是8.00的x的版本(是8.00版里面的最后一个版本,hoho),一般网上“free”的,大都是8.00e的版本。
可以到如下地址来下载patch补丁,不过现在的patches似乎都升级到9.00a以后的了,但愿9.00a的“free”版能早点出来
http://www.gimpel.com/html/ptch90.htm#pcl
好了,如果运行lint-nt以后,可以看到有版本号输出,以及什么can not open files之类的提示,那么恭喜,你的pc-lint已经可以工作了。
(4)配置pc-lint
看看有没有一个叫做lin.bat的批处理文件,如果没有,就手工添加一个,如下内容:
d:\lint\lint-nt -v -i"d:\lint" std.lnt %1 %2 %3 %4 %5 %6 %7 %8 %9
好了,然后把d:\lint这个路径添加到系统的path里面去,然后“运行”->“cmd”打开shell,然后输入:
lin [回车]
看看有没有输出,ok,如果有,那么代表你的for symbian的pc-lint环境就弄好了。
(5)把pc-lint跟vs2005集成
集成过程很简单,其实只要是支持调用第三方的程序的ide,更准确地说是editor都可以无缝地将pc-lint集成到环境中去,例如:vs系列ide,carbide c++,ultra editor, edit plus, source insight等等,hoho,偶甚至把emacs for win32也配置出来了
。
1)打开vs2005,选择"tools"->"externel tools...",然后选择"add"
2)在title里随便输点什么,例如“lint current file”
3)在command里面输入:d:\lint\lin.bat
4)在argument里面输入:-i"$(SolutionDir)\inc" "$(ItemPath)"
这里的-i就代表pc-lint进行语法检查的时候当遇到头文件的时候要跑到哪个目录下面去找的意思,你也可以这样写:"$(SolutionDir)\group\conf.lnt"然后在你的group目录里面建立一个叫做conf.lnt的文件,把所有程序用到的include目录都用-i的形式放进去。
5)在intial directory里面输入:"$(ItemPath)"
6)最后,很重要的一点就是,需要把use output window这一项前面的小方块勾上。
然后按下确定,就一切ok了。
作者:
wangpl4092
时间:
2009-1-7 23:59
PC-lint for C/C++ (NT) Ver. 8.00e, Copyright Gimpel Software 1985-2001
c:\pclint\std.lnt 1 Error 307: Can't open indirect file ' c:\pclint\co-msc60.lnt'
Tool returned code: 2
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2