VC中多文件工程的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.00elnt下新建MyProj.lnt文本文件,我们将自己工程的很多头文件目录,在其中一一列出来,内容如下:
std.lnt/*注释:包含的规则和/或选项文件*/
env-vc6.lnt
/*下面为各头文件目录,可以在字串中不要双引号,可以有多行*/
-i"C:MyProjIncludeA" -i"C:MyProjIncludeB" -iC:MyProjIncludeC
-iC:MyProjIncludeD
-e641//另一种注释//这是省略#641错误
【注意】指明各头文件目录很重要。头文件各目录的名称可能在VC的ProjectProject SettingsProject 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.00elnt" MyProj.lnt $(FilePath)
【注意】$(FilePath)这个字串是个宏名,也可以通过点击右边的三角箭头选择;可能为要检查的本文件的路径加文件名,而
不能是$(FileName)!!!因为它可能只是文件名而不带路径,将导致使用时说无法发现!
另外,MyProj.lnt这个选项文件必须在$(FilePath)之前。
Initial Directory项:在Arguments项中若缺少-i"E:PC.Lint.v8.00elnt"时将报无法找到各个.lnt文件,可在此
栏填E:PC.Lint.v8.00elnt来指定。
选中"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:unixusr" -u std.lnt env-vc6.lnt
选中"Use Output Window"
D 打开一个项目,让焦点位于最项层目前的一个Source Window中,点击Tools/PCLint-project菜单即可
- 上一篇:轻松实现类VC界面(窗口停靠)
- 下一篇:vc里读取配置文件(ini)的问题