Windows
下
C/C++
开发工具中,
VC6
使用较为普遍,因此这里先讲下
VC6.0
环境中集成
pclint
的步骤
.
首先
,
当然要下载软件,正版软件要
200
多
$
呢,买不起
!
所以只好网上找免费的拉。从
ttp://www.61ic.com/down/othe/pclint.rar
处可以下载到一个
8.0
版本的
pclint.
1. 将 pclint.rar 解压至 c:\, 这样 lint 文件就位与 c:\pclint( 安装目录 ) 下了。
2. 将 c:\pclint\lnt 下的 3 个文件 lib-w32.lnt , env-vc6.lnt , co-msc60.lnt 拷贝至 c:\pclint 下, 再在安装目录下创建 std.lnt 和 options.lnt 两个文件,其中 std.lnt 的内容如下
// contents of std.lnt
c:\pclint\co-msc60.lnt
c:\pclint\lib-w32.lnt
c:\pclint\options.lnt -si4 -sp4
-i"D:\Program Files;D:\Program Files\Microsoft Visual Studio\VC98\Include"
//end
其中 -i 后面的路径名为 VC 的安装路径和 VC Include 文件路径,根据自己的修改便可。 options.lnt 内容可为空,为定制内容 , 以后需要时再添加。
准备工作做完了,下一步就是要将 pclint 集成到 VC6 中去,先配置 lint 使之能对单个 C 或 C++ 文件进行检查。
1. 打开 VC6 , tools--->customize-->tools 新建一个名为 pclint 的项,在下面填入
command: C:\pclint\lint-nt.exe
arguments: -u c:\pclint\std.lnt c:\pclint\env-vc6.lnt "$(FilePath)"
Use Output Window 打上勾 close 完成。 这个在你 VC 窗口 tools 菜单下应该多了一个 pclint 选项,可以用它来运行 lint 程序,对你的 c/c++ 代码进行静态检查了。
自己注 1 :将 pclint 放在任何目录都是可以的,但是,如果是放在例如: Program Files 这样的目录中,由于该目录中间有空格,所以,解析时常常会出错,需要在绝对路径外面加上引号,例如: "H:\Program Files\pclint\lint-nt.exe"。
自己注 2 :其实,更简单的方法使 pc-lint 的安装路径设置到系统地 path 环境变量中,那么就完全可以使用相对路径了。
自己注 3 :运行时,会提示 PC-lint for C/C++ (NT) Ver. 8.00e, Copyright Gimpel Software 1985-2001 c:\pclint\co-msc60.lnt(214) : Error 307: Can't open indirect file 'lib-ole.lnt' Tool returned code: 2 这个错误,打开 co-msc60.lnt ,我们可以看到该文件最后一行对 'lib-ole.lnt' 的调用,简单的处理直接注释掉就行了,如需用到 OLE, 请设置 lib-ole.lnt 的绝对路径,并请参考下 pclint 的相关文档)现在就可以用个小程序测试一下 pclint 了。
//test1.cpp
#include
class X
{
int *p;
public:
X()
{ p = new int[20]; }
void init()
{ memset( p, 20, 'a' ); }
~X()
{ delete p; }
};
编译这个文件,看下你的编译器给你多少警告,再运行下 lint , 可以自己对比一下。我的机器上, VC 产生 0 errors 0 warnings, 而 lint 程序产生了如下 8 条警告信息 , 有些还是很有用处的提示,这里就不一一分析了 .
2. 通常一个 VC 项目中包含多个 C 或 C++ 文件,有时需要同时对这一系列的文件进行 lint 检查,我们可以通过配置一个 pclint_project 来达到目的。和前面第一步中的方法基本一样,不过这里我们需要用到 unix 中的 find 等命令来查找当前目录下的 C 和 C++ 文件,然后再将它们送给 lint 程序处理,所以得先从 http://www.weihenstephan.de/~syring/win32/UnxUtils.zip 下载 UnxUtils.zip. 接着按下列步骤进行 :
(i) 解压 UnxUtils.zip 至 c:\unix 下 , 可以看到 C:\unix\usr\local\wbin 有很多 unix 下的命令 , 等下会用到。
(ii) 打开 VC6 , tools--->customize-->tools 新建一个名为 pclint_project 的项,只不过下面的 commands 和 arguments 内容不同。
commands: C:\unix\usr\local\wbin\find.exe
arguments: $(FileDir) -name *.c -o -name *.cpp | C:\unix\usr\local\wbin\xargs c:\pclint\lint-nt -i"c:\unix\usr\local" -u c:\pclint\std.lnt c:\pclint\env-vc6.lnt
(iii)Use Output Window 打上勾, close 退出。好了,这时 VC tools 菜单下应该又多了一个 pclint_project 项了,你以后可以用它来对一个 VC 项目运行 lint 检查程序了 . 需要注意的是工程的路径不能出现空格。
1. 将 pclint.rar 解压至 c:\, 这样 lint 文件就位与 c:\pclint( 安装目录 ) 下了。
2. 将 c:\pclint\lnt 下的 3 个文件 lib-w32.lnt , env-vc6.lnt , co-msc60.lnt 拷贝至 c:\pclint 下, 再在安装目录下创建 std.lnt 和 options.lnt 两个文件,其中 std.lnt 的内容如下
// contents of std.lnt
c:\pclint\co-msc60.lnt
c:\pclint\lib-w32.lnt
c:\pclint\options.lnt -si4 -sp4
-i"D:\Program Files;D:\Program Files\Microsoft Visual Studio\VC98\Include"
//end
其中 -i 后面的路径名为 VC 的安装路径和 VC Include 文件路径,根据自己的修改便可。 options.lnt 内容可为空,为定制内容 , 以后需要时再添加。
准备工作做完了,下一步就是要将 pclint 集成到 VC6 中去,先配置 lint 使之能对单个 C 或 C++ 文件进行检查。
1. 打开 VC6 , tools--->customize-->tools 新建一个名为 pclint 的项,在下面填入
command: C:\pclint\lint-nt.exe
arguments: -u c:\pclint\std.lnt c:\pclint\env-vc6.lnt "$(FilePath)"
Use Output Window 打上勾 close 完成。 这个在你 VC 窗口 tools 菜单下应该多了一个 pclint 选项,可以用它来运行 lint 程序,对你的 c/c++ 代码进行静态检查了。
自己注 1 :将 pclint 放在任何目录都是可以的,但是,如果是放在例如: Program Files 这样的目录中,由于该目录中间有空格,所以,解析时常常会出错,需要在绝对路径外面加上引号,例如: "H:\Program Files\pclint\lint-nt.exe"。
自己注 2 :其实,更简单的方法使 pc-lint 的安装路径设置到系统地 path 环境变量中,那么就完全可以使用相对路径了。
自己注 3 :运行时,会提示 PC-lint for C/C++ (NT) Ver. 8.00e, Copyright Gimpel Software 1985-2001 c:\pclint\co-msc60.lnt(214) : Error 307: Can't open indirect file 'lib-ole.lnt' Tool returned code: 2 这个错误,打开 co-msc60.lnt ,我们可以看到该文件最后一行对 'lib-ole.lnt' 的调用,简单的处理直接注释掉就行了,如需用到 OLE, 请设置 lib-ole.lnt 的绝对路径,并请参考下 pclint 的相关文档)现在就可以用个小程序测试一下 pclint 了。
//test1.cpp
#include
class X
{
int *p;
public:
X()
{ p = new int[20]; }
void init()
{ memset( p, 20, 'a' ); }
~X()
{ delete p; }
};
编译这个文件,看下你的编译器给你多少警告,再运行下 lint , 可以自己对比一下。我的机器上, VC 产生 0 errors 0 warnings, 而 lint 程序产生了如下 8 条警告信息 , 有些还是很有用处的提示,这里就不一一分析了 .
2. 通常一个 VC 项目中包含多个 C 或 C++ 文件,有时需要同时对这一系列的文件进行 lint 检查,我们可以通过配置一个 pclint_project 来达到目的。和前面第一步中的方法基本一样,不过这里我们需要用到 unix 中的 find 等命令来查找当前目录下的 C 和 C++ 文件,然后再将它们送给 lint 程序处理,所以得先从 http://www.weihenstephan.de/~syring/win32/UnxUtils.zip 下载 UnxUtils.zip. 接着按下列步骤进行 :
(i) 解压 UnxUtils.zip 至 c:\unix 下 , 可以看到 C:\unix\usr\local\wbin 有很多 unix 下的命令 , 等下会用到。
(ii) 打开 VC6 , tools--->customize-->tools 新建一个名为 pclint_project 的项,只不过下面的 commands 和 arguments 内容不同。
commands: C:\unix\usr\local\wbin\find.exe
arguments: $(FileDir) -name *.c -o -name *.cpp | C:\unix\usr\local\wbin\xargs c:\pclint\lint-nt -i"c:\unix\usr\local" -u c:\pclint\std.lnt c:\pclint\env-vc6.lnt
(iii)Use Output Window 打上勾, close 退出。好了,这时 VC tools 菜单下应该又多了一个 pclint_project 项了,你以后可以用它来对一个 VC 项目运行 lint 检查程序了 . 需要注意的是工程的路径不能出现空格。