产品价格
PC-lint - One Workstation License (non-floating) ¥2390
PC-lint - 10 User one-location LAN License¥18000
现在网上没有9.0啊,驴子上没有,真要9.0估计要买正版了。
给你个PC-Lint.v8.0试试看把
http://www.pudn.com/downloads30/sourcecode/embed/detail95030.html?name=PC-Lint.v8.0.rar
PC-lint 软件性价比高,易于学习,容易推广和固化到软件开发测试流程中去,所以在全世界得到了广泛的应用。PC-lint 使用方法很简单,可以用命令行方式进行,例如lint-nt –u std.lnt test1.c test2.c test3.c 也可以使用
MAKEFILE的方式。此外,它还可以集成到很多开发环境或常用的代码编辑软件中,比如集成到Source Insight/SLICKEDIT/MS VC6.0/KEIL C..等。PC-Lint 还支持Scott Meyes的名著(Effective C++/More Effective C++)中说描述的各种提高效率和防止错误的方法。
PC-lint 的安装非常简单,以PC-lint 8.0为例,运行安装程序将其释放到指定的安装目录即可,比如c:\pclint8。然后需要运行PC-lint 的配置工具config.exe生成选项和检查配置文件,以刚才的安装路径为例,config.exe 应
该位于:C:\pclint8\config.exe。配置文件是代码检查的依据,PC-lint 自带了一个标准配置文件std.lnt,但是这个文件没有目录包含信息(头文件目录),通常对代码检查的时候都需要指定一些特殊的包含目录,所以要在标准配置的基础上生成针对某个项目代码检查的定制配置。下面就以Microsoft Visual C++ 6的开发环境为例,介绍一下定制配置的过程。
运行C:\pclint8\config.exe后出现一个欢迎界面,提示版权信息,如图4.1所示:
图4.1 配置欢迎窗口
点击“下一步”按钮出现pc-lint.exe命令行使用说明窗口(图4.2所示):
图4.2 pc-lint.exe命令行使用说明窗口
点击“下一步”按钮继续,接着是选择创建或修改已有配置文件STD.LNT的选项:
图4.3 选择如何使用配置文件STD.LNT 因为我们是第一次配置,所以选择上面一个选项“Create a new TD.LNT”,
这样做不会修改已有配置文件STD.LNT的内容,而是创建一个新的STD_x.LNT文件,文件名中的x是从“a”到“z”26个英文字符中的任意一个,一般是按顺序排列,从“a”开始。STD_x.LNT文件的内容被初始化为STD.LNT内容的拷贝。如图4.3所示,使用默认的PC-Lint 路径,然后点击“下一步”按钮选择编译器:
图4.4 选择编译器
接下来是选择编译器,在下拉框中选择自己使用的编译器。这里我们选择“Microsoft Visual C++ 6.x (co-msc60.lnt)”。如果没有自己使用的编译器,可选择通用编译器“Generic Compilers”。这个选项会体现在co-xxx.lnt 文件中,并存放在前面我们选择的配置路径(C:\PCLint8)下,在后面配置选项我们所选择的***.LNT均会被存放到这个路径下。点击“下一步”按钮选择内存模式:
图4.5 选择内存模式
可以根据自己程序区和数据区的实际大小选择一个恰当的内存模型,内存模型的选项会体现在STD.LNT文件或新创建的STD_x.LNT 中。因为我们的开发环境是32位的Windows,所以选择“32-bit Flat Model”,然后点击“下一步”按钮选择所要的支持库的配置信息:
图4.6 选择软件库的配置信息
PC-Lint 常用的一些软件库都提供了定制的配置信息,选择这些定制信息有助于开发人员将错误或信息的注意力集中在自己的代码中,选择的支持库配置将被引入到STD.LNT文件或新创建的STD_x.LNT 文件中。选择常用的ATL、MFC、STL等配置,然后点击“下一步”按钮:
图4.7 选择软件名人的编程建议
这是一个比较有意思的选项,就是让你选择是否支持为使用C/C++编程提出过重要建议的作者的一些关于编程方面的个人意见。如果选择某作者的建议,那么他提出的编程建议方面的选项将被打开,作者建议的配置名为AU-xxx.LNT,建议全部选择,然后点击“下一步”按钮:
图4.8 选择是否设置包含文件目录
接下来是选择用何种方式设置包含文件目录,如果选择使用-i 方式协助设置包含文件选项,下一步就会要求输入一个或多个包含路径。也可以跳过这一步,以后手工修改配置文件,-i 选项体现在STD.LNT文件或新创建的STD_x.LNT 文件中,每个目录前以-i 引导,目录间以空格分隔,如果目录名中有长文件名或包含空格,使用时要加上双引号,如-i“E:\Program Files\Microsoft Visual C++\VC98\Indlue”。这里我们选择用-i 方式协助我们来设置,然后点击“下一步”按钮:
图4.9 选择是否设置包含文件目录
这一步就是在下面的文本框里可手工输入文件包含路径,用分号“”或用ctrl+Enter换行来分割多个包含路径,或者可以点中Brows,在目录树中直接选择。填完后点击“下一步”按钮:
图4.10 提示std_x.lnt 已经被创建因为第三步选择了“Create a new STD.LNT”选项,所以出现以下对话框,表
示std_x.lnt,std.lnt 在配置路径下已被创建,这里的std_a.lnt实际上包含了std.lnt 的信息,除此之外还有我们选择的包含路径和库配置信息。单击“确定”按钮继续:
图4.11 提示是否为其它编译环境创建配置文件
选择“确定”后,会接着提示是否为其它编译环境创建配置文件,如果选择“是”将从第四步开始创建一个新的配置文件。这里我们选择“否”:
图4.12 是否替换std.lnt 文件
接下来会提示是否使用现在生成的std_x.lnt 文件取代std.lnt文件。如果选择“是”将会用std_x.lnt 文件的内容覆盖std.lnt 文件的内容,使得当前创建的配置选项成为以后创建新的配置文件时的缺省配置。通常我们选择“否”继续下一步:
图4.13 生成全局代码检查选项文件OPTIONS.LNT
接下来将会准备产生一个控制全局编译信息显示情况的选项文件OPTIONS.LNT,该文件的产生方式有两种,一种是安装程序对几个核心选项逐一解释并提问你是否取消该选项,如果你选择取消,则会体现在OPTIONS.LNT文件中,具体体现方式是在该类信息编码前加-e,后面有一系列逐一选择核心选项的过程。如果选择第二种选择方式,安装文件会先生成一个空的OPTIONS.LNT文件,等你以后在实际应用时加入必要的选项。这里选择“No”选项,即不取消这些选项,然后单击“下一步”:
图4.14 选择所支持的集成开发环境
接着选择所支持的集成开发环境选项,可选多个或一个也不选,PC-Lint 提供了集成在多种开发环境中工作的功能,例如可集成在VC、BC、Source Insight中。这里我们选择Microsift Visual C++ 6.0,这样env-v6.lnt就会被拷贝到配置路径中。然后单击“下一步”:
图4.15 选择LIN.BAT 文件的使用方式
安装程序会生成一个LIN.BAT文件,该文件是运行PC-Lint 的批处理文件,为了使该文件能在任何路径下运行,安装程序提供了两种方法供你选择。第一种方法是让你选择把LIN.BAT拷贝到任何一个PATH 目录下。第二种方法是生成一个LSET.BAT文件,在每次使用PC-LINT前先运行它来设置路径,或者把LSET.BAT 文件的内容拷贝到AUTOEXEC.BAT文件中。建议选择第一种方法,指定的目录为当前PC-Lint 的安装目录。我们选择第一种方式:“copy LIN.BAT to one of my PATH directory”,然后单击“下一步”输入PATH 目录:
图4.16 指定PATH 目录
输入安装目录C:\PCLint8作为PATH目录,然后单击“下一步”按钮进入最后的确认窗口:
图4.17 确认完成配置
到此就完成了PC-Lint的安装配置工作,单击“完成”按钮就可以使用PC-Lint。以上配置过程中在配置路径下产生的多个*.lnt 文件,除了std.lnt、std_x.lnt和option.lnt为配置向导所生成,其它co-xxx.lnt、lib-xxx.lnt、env-xxx.lnt 均是从原始安装目录中拷贝出来的,在这个目录下还有其它PCLint所支持的编译器、库及集成开发环境的lnt 配置文件,所有的lnt 文件均为文本文件。
上面的配置方法适合于刚开始接触PC-lint 时使用,对于熟练的使用者可以直接编辑、编写各*.lnt 配置文件安成上面的配置工作,或者定制出更适合自己使用的配置环境。 PC-Lint 的使用方法很简单,可以用命令行方式进行,也可以集成到开发环
境中,下面就分别介绍这些用法
使用命令行方式
命令行的使用方式是PC-lint最基本的使用方式,也是其他各种集成使用方式的基础,通过命令行可以完成PC-lint 的全部代码分析工作。PC-lint 的命令行有下列形式:
Lint-nt option file1 [file1 file3 …]
其中的Lint-nt 是PC-lint 在Windows NT/2000/XP 平台上的可执行程序Lint-nt.exe,它完成PC-lint 的基本功能;option 代表PC-lint可接受的各种选项,这是PC-lint最为复杂的部分,它的选项有300多种,可以分为:错误信息禁止选项、变量类型大小选项、冗余信息选项、标志选项、输出格式选项和其他选项等几类,这些选项在本文的第三部分已经介绍过了;file为待检查的源文件。
另外值得注意的一点是,在命令行中可以加入前面提到的*.lnt配置文件名,并可以把它看作是命令行的扩展,其中配置的各种选项和文件列表,就和写在命令行中具有一样的效果。
PC-Lint 与Visual C++集成开发环境(IDE)集成
在所有集成开发环境中,PC-Lint 8.0对VC++6和VC++7.0的支持是最完善的,甚至支持直接从VC 的工程文件(VC6是*.dsp,VC7是*.vcproj)导出对应工程的.Lnt文件,此文件包含了工程设置中的预编译宏,头文件包含
路径,源文件名,无需人工编写工程的.Lnt文件。
PC-Lint 与VC 集成的方式就是在VC 的集成开发环境中添加几个定制的命令,添加定制命令的方法是选择“Tools”的“Customize...”命令,在弹出的Customize窗口中选择“Tools”标签,在定制工具命令的标签页中添加定制命令。首先要为VC 的集成开发环境添加一个导出当前工程的.Lnt配置文件的功能,导出.Lnt文件的命令行是:
lint-nt.exe +linebuf $(TargetName).dsp>$(TargetName).lnt 参数+linebuf表示加倍行缓冲的大小,最初是600 bytes,行缓冲用于存放当前行和你读到的最长行的信息。$(TargetName)是VC集成开发环境的环境变量,表示当前激活的Project 名字,注意要选中“Use Output Window”选项,这样PC-Lint 就会将信息输出到Output窗口中。填写效果如图4.18所示:
图4.18 添加导出项目.Lnt文件的定制命令
接着添加一个检查当前文件的定制命令,检查文件的命令行为:
lint-nt.exe -iC:\PCLint8 -u std_g.lnt env-vc6.lnt
$(FileName)$(FileExt)
第一个参数-iC:\PCLint8为PC-Lint 搜索*.lnt 文件的目录,这里就是我们的配置路径。std_g.lnt是为VC 编译环境定制的配置文件,$(FileName)和$(FileExt)是VC 集成开发环境的环境变量,$(FileName)$(FileExt)表示当前文件的文件名。和导出.Lnt命令一样,这个命令也要使用VC 集成环境的Output窗口输出检查信息,所以要选中“Use Output Window”选项,如图4.19所示:
图4.19 添加检查当前文件文件的定制命令
最后要添加一个检查整个工程的定制命令,检查整个工程的命令行是:
lint-nt.exe +ffn -iC:\PCLint8 std_g.lnt env-vc6.lnt
$(TargetName).lnt>$(TargetName).chk
这个命令的结果就是将整个工程的检查结果输出到与工程同名的.chk文件中。参数中+ffn 表示Full File Names,可被用于控制是否使用的完整路径名称表示。
下面就以一个简单的例子介绍一下如何在VC集成开发环境中使用PC-Lint。首先新建一个“Win32 Console Application”类型的简单工程(输出“Hello World”),然后将本文第二章引用的例子代码添加到工程的代码中,最后将这个工程代码所倚赖的包含目录手工添加到配置文件中,因为代码检查要搜索stdafx.h这个预编译文件,所以本例要手工添加工程代码所在的目录。本文的例子生成的配置文件是std_g.lnt,用文本文件打开std_g.lnt,在文件中添加一行:
-iC:\unzipped\test
“C:\unzipped\test”就是例子工程所在的目录(stdafx.h就在这个目录)。如果你的工程比较庞大,有很多头文件包含目录,就需要将这些目录一一添加到配置文件。在确保代码输入没有错误之后(有错误页没关系,PC-Lint会检查出错误),就可以开始代码检查了。例子工程,打开要检查的代码文件,本例是test.cpp,然后选择“Tools”菜单下的“PC_LINT 8.0 Check Current File”命令,Output 窗口输出对本文件的检查结果,如图4.20所示:
图4.20 检查结果
PC-Lint 与source insight 集成
PC-Lint 与source insight的集成也是通过添加定制命令实现的,从“Options”菜单中选择“Custom Commands”命令项。点击“Add…”按钮,如图4.21所示,在弹出的“Custom Commands”窗口中完成以下输入:
在Name栏中输入“PC-lint Check Current File”,原则上这个名称可以随便起,只要你能搞清楚它的含义就可以了;
在Run 栏中输入“C:\PcLint\lint-nt -u -iC:\PcLint\Lint std_f env-si %f”其中C:\PcLint 是你PC-LINT的安装目录,td_f表示为Source Insight定制的配置文件std_f.lnt;
在Output栏中选择“Iconic Window”、“Capture Output”选项;
在Control 栏中选择“Save Files First”;
在Source Links in Output 栏中选择“Parse Links in Output”、“File,then Line”;
在Pattern 栏中输入“^\([^ ]*\) \([0-9]+\)”;
图4.21 在Source Insight中添加定制命令
命令添加完成后就可以点击“Run”按钮就可以对当前文件执行PC-Lint 检查。为了方便使用,还可以点击“Menu...”按钮将这个定制命令添加到Source Insight的菜单中。
PC-Lint 与UltraEdit 集成
在UltraEdit 中集成PC-Lint的方法和Source Insight 类似,也是添加一个定制命令菜单,具体实现方法是先单击UltraEdit 的“高级”菜单中的“工具配置”命令,如图4.22所示,在打开的配置窗口中依次输入以下内容:
在“菜单项目名”栏输入“PC-lint Check Current File”;
在“命令行”栏输入以下命令:C:\PCLint\lint-nt –u -iC:\PCLint std env-si %f 其中,C:\PCLint是PC-Lint的安装目录,使用std.lnt 中的配置,由于UltraEdit 和Source Insightde 的检查环境类似,所以借用env-si 中的环境配置;
在“工作目录”栏输入以下路径:E:\code,这是代码所在目录;
选中“先保存所有文件”选项;
在“命令输出”栏中,选中“输出到列表”和“捕捉输出”两个选项;
点“插入”将命令行插入UltraEdit 的菜单中;
图4.22 在UltraEdit中添加定制命令此时在UltraEdit 的“高级”菜单中会增加一个“PC-lint Check Current File”菜单,点击该菜单即可对当前文件执行PC-lint检查。
介绍:对于多个源程序文件且多个头文件目录的项目进行PCLint语法检查。1.安装
我使用的是PC.Lint.v8.00e,是不用安装的版本。
解开到E:\PC.Lint.v8.00e目录,可执行文件为Lint.exe(lint-nt.exe与其相同,可能为NT平台用的,在Win2000下都可运行)。
子目录lnt内是检查的规则及选项文件,这两种文件扩展名全为.lnt。
2.准备自己工程的选项文件
在E:\PC.Lint.v8.00e\lnt下新建MyProj.lnt文本文件,我们将自己工程的很多头文件目录,在其中一一列出来,内容如下:
std.lnt/*注释:包含的规则和/或选项文件*/
env-vc6.lnt
/*下面为各头文件目录,可以在字串中不要双引号,可以有多行*/
-i"C:\MyProj\IncludeA"
-i"C:\MyProj\IncludeB"
-iC:\MyProj\IncludeC
-iC:\MyProj\IncludeD
-e641//另一种注释//这是省略#641错误
【注意】指明各头文件目录很重要。头文件各目录的名称可能在VC的Project\Project
Settings\Project Options栏中:
/I "../Include/PS",可供借鉴(相对路径暂未测试)。
当后面运行Lint时出现无法打开某个头文件时,需要不断添加头文件所在目录的名称到本选项文件中。
3.在VC中运行PCLint(针对单个文件但需包含多个头文件目录):
A
点击Tools/Customize/Tools出现定制窗口
B 在Menu
contents中双击下面的空白拦,输入拟新增的Tool名称:PCLint
C
双击PClint项,在Command中填入要调用的.exe文件名:lint
Arguments:中填入:-i"E:\PC.Lint.v8.00e\lnt" MyProj.lnt $(FilePath)
【注意】$(FilePath)这个字串是个宏名,也可以通过点击右边的三角箭头选择可能为要检查的本文件的路径加文件名,而
不能是$(FileName)!!!因为它可能只是文件名而不带路径,将导致使用时说无法发现!
另外,MyProj.lnt这个选项文件必须在$(FilePath)之前。
Initial
Directory项:在Arguments项中若缺少-i"E:\PC.Lint.v8.00e\lnt"时将报无法找到各个.lnt文件,可在此
栏填E:\PC.Lint.v8.00e\lnt来指定。
选中"Use Output Window"
(这将使PCLint运行的结果在VC下方Output窗口中,双击行号还可以跳到指定行)
D
打开一个项目,让焦点位于某个源程序编辑窗口,点击Tools/pclint菜单即可
【注意】直到VC Output窗口中出现Tool returned code: ,才算Tool运行完,若未运行完,可能在再点击PCLint时报错。
4.网上搜到的VC环境多个文件同时Lint的方法,大致为找到各个.c文件,将各文件名经xargs传给lint来实现。但需要find,xargs等
命令,似乎需要模拟unix环境的软件支持中才有,我装的Cygwin的环境中对find命令后的格式有问题,无法支持unix中的
find
. -name *.c,故无法由此找到各个.c文件名。但可以用Cygwin的ls命令来代替find。
【原方法如下:】
A
点击Tools/Customize/Tools出现定制窗口
B 在Menu contents中双击空白拦,输入:PCLint-project
C 双击PCLint-project项,在Command:中填入:find
Arguments:中填入:$(FileDir) -name
*.c | xargs pclint -i"c:\unix\usr" -u std.lnt env-vc6.lnt
选中"Use Output
Window"
D 打开一个项目,让焦点位于最项层目前的一个Source Window中,点击Tools/PCLint-project菜单即可
【方法1如下:】
A 点击Tools/Customize/Tools出现定制窗口
B 在Menu
contents中双击空白拦,输入:PCLint-Proj
C 双击PCLint-Proj项,在Command:中填入:ls
Arguments:中填入:*.c |xargs lint -i"E:\PC.Lint.v8.00e\lnt" MyProj.lnt
Initial
Directory项:本栏填写工程的一个源文件子目录(保证在Arguments项中有-i"E:\PC.Lint.v8.00e\lnt")
选中"Use Output Window"
D 打开一个项目,让焦点位于最顶层目前的一个Source
Window中,点击Tools/PCLint-Proj菜单即可
【最简单的方法如下:】
A 在MyProj.lnt末尾添加一行 *.c (即目标为本目录下所有.c文件)
B
点击Tools/Customize/Tools出现定制窗口
C 在Menu contents中双击空白拦,输入:PCLint-Proj
D
双击PCLint-Proj项,在Command:中填入:lint
Arguments:中填入:-i"E:\PC.Lint.v8.00e\lnt" MyProj.lnt
Initial
Directory项:本栏填写工程的一个源文件子目录(保证在Arguments项中有-i"E:\PC.Lint.v8.00e\lnt")
选中"Use Output Window"
E 打开一个项目,让焦点位于最项层目前的一个Source
Window中,点击Tools/PCLint-Proj菜单即可
【注意】上述方法中的ls,xargs等命令位于Cygwin的目录中,需要将路径添加到系统的PATH中:
"我的电脑"(右击鼠标)->"属性"->"高级"->"环境变量"->"系统变量"->"Path"
加入"C:\cygwin\bin"重启生效。
ls
*.c将同时找到.c文件和.cpp文件,但是也会将非工程所需的.c文件编译进来,需要手工把文件转走。
另外,这种方法一次只能Lint一个目录,每完成一个目录就要重新设置Initial
Directory项为新的要检查的目录。
5.在DOS窗口中对一个目录多个文件进行Lint
1)基于Cygwin
cd C:\MyProj\SrcA\
ls *.c |
xargs lint -i"E:\PC.Lint.v8.00e\lnt" MyProj.lnt >>
LintOutput.txt
【注意】ls *.c 也可以用DOS命令dir
*.c/B来替换,/B的意思是仅列出各文件名。>>LintOutput.txt的意思是将Lint结果输出到
LintOutput.txt文件中。
2)无Cygwin支持
cd
C:\MyProj\SrcA\
dir *.c
/B
将所有列出的.c文件名称复制到E:\PC.Lint.v8.00e\lnt\MyProj.lnt中,内容如下:
std.lnt/*注释:包含的规则和/或选项文件*/
env-vc6.lnt
/*下面为各头文件目录,可以在字串中不要双引号,可以有多行*/
-i"C:\MyProj\IncludeA"
-i"C:\MyProj\IncludeB"
-iC:\MyProj\IncludeC
-iC:\MyProj\IncludeD
-e641//另一种注释//这是省略#641错误
a.c
//指定要Lint的文件
b.c
c.c
最后几行指定的要Lint之文件也可以用通配符,如:
*.c
然后直接运行
lint -i"E:\PC.Lint.v8.00e\lnt" MyProj.lnt >>LintOutput.txt
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)