vs2008上使用pc-lint工具
管超
1. 概述
Pc-lint是一套检查代码潜在隐患的工具,借助该工具可以辅助我们检查代码中的问题。 本文以pc-lint9.00L版本为例,说明如何在vs2008中集成并使用pc-lint。Pc-lint9.00L见附件。
2. 安装pc-lint9.00L
本文以C:\\lint为例进行安装,直接解压到相应目录即可,已经完成了pclint对应补丁的安装。 注意:pc-lint对检查源文件的路径名支持的不好,在路径中尽量不要包含空格及中文名。
解压后的pc-lint如下所示。
注意其中的std.lnt文件和options.lnt文件。本文假设vs2008安装在C盘的默认目录下。如果不是在该目录,需要更改options.lnt下的对应路径 其中std.lnt文件的内容如下:
//PC-Lint配置文件的入口,除了env-xxx.lnt和project.lnt外,其他配置文件都在本文件包含。 //以下列出了常用的配置文件,如果需要,将前面的注释符去掉即可。
//编译器配置文件 //co-diab.lnt //Tornado diab //co-cb.lnt //Borland C++ Builder //co-gcc.lnt //GNU C/C++ //co-kc51.lnt //Keil C51 // co-msc60.lnt //Microsoft Visual C++ 6.0 //co-msc70.lnt //Microsoft Visual C++ .net // co-msc71.lnt //Microsoft Visual C++ .net 2003 //co-msc80.lnt //Microsoft Visual C++ .net 2005 co-msc90.lnt //Microsoft Visual C++ .net 2008 //co-tc.lnt //Turbo c/c++ //co-ti320.lnt //Texas Inst. TI320 Class C
//库配置文件 lib-mfc.lnt //Microsoft Foundation Class Library lib-stl.lnt //Standard Template Library //lib-vxw.lnt //VxWorks Library
//Effective C++条款 //lib-sm3.lnt //Effective C++ 3rd Edition
//用户的配置文件 options.lnt
//目标机的字宽 -si4 //sizeof(int) equal 4 //-si2 //sizeof(int) equal 2
//目标机的地址空间 -sp4 //size of pointer equal 4
//tab键代表几个空格 -t4 Options的文件内容如下
// PC-lint warning options configuration. //
// Please note -- this is a representative set of error suppression
// options. Please adjust to suit your own policies // See manual (chapter LIVING WITH LINT) // for further details.
//VS头文件的搜索路径,从工程配置中获取 -i\-i\
-i\
-i\-i\-i\
-i\-i\
-i\
-i\-i\-i\
-i\-i\
-i\ -i\
-i\ -i\
-i\
-i\ -i\
-i\ -i\ -i\ -i\
-i\
-i\
-i\ -i\ -i\-i\-i\ -i\
-i\ -i\ -i\
-i\ -i\
-i\ -i\ -i\ -i\
-i\ -i\ -i\ -i\ -i\ -i\ -i\
-i\ -i\
-i\ -i\
-i\ -i\ -i\
-i\ -i\
-i\-i\-i\
-i\
//用户头文件搜索路径 //-i\
//Makefile中定义的编译宏 //-D__VXWORKS__
//以下设置为默认设置,不建议修改。 -wlib(0) //库文件不产生报警 -w2 //告警级别为2,即显示 +macros //将PC-Lint解析宏定义的Buffer加倍,初始大小4K。 +macros +ffn //显示文件的全路径。便于继承环境连接
//通过-e方式屏蔽掉某类告警,此功能需慎用。 //-e1551 -e537 -e534
//默认情况下,与cpp文件在同一目录下的头文件不认为是库文件,其他的头文件都认为是库文件。
//将头文件作为库文件,该文件通常在源文件目录下 //+libh(zip.h)
//将头文件不作为库文件,该文件通常不在源文件目录下 //-libh(xxxx.h)
//将目录不作为库的目录,即下面所有文件都不认为是库文件 //-libdir(..common\\base\\*)
//将目录作为库的目录,即下面所有文件都认为是库文件 +libdir(..\\sip\\rvSip\\include\\*)
//将某个源文件当成库文件。通常用在引用第三方源文件上 //+libm(Agent\\zip.cpp)
3. 集成到vs2008
3.1. 创建工程lnt文件
工程Lnt文件包含了头文件路径,以及宏定义等设置,为pclint检查代码提供必要的信息
1. 选择工具,然后创建外部扩展工具。