最近领导要求用PCLint来做代码检查,于是上网搜了一些文档,找到了平涛和戴江宁编写的《PCLint 8.0使用说明》,在实践过程中遇到了一些问题,在这里和大家分享一下。
1、安装
下载版本后直接解压到目录C:\PCLint8
2、配置
在文档中介绍是通过config.exe来进行配置,但是在打开config.exe以后就报错
“Unable to locate a ‘.pdf” reader in your registry.Help will be unavailable”,在后续的相关配置选择过程中总是报无法拷贝文件的错误 “Unable to copy xxxxx.lnt”,无奈只能选择手动拷贝相关lnt文件并手工编辑std.lnt。
解决步骤:
1、 先使用config.exe进行配置,将配置过程中报无法拷贝的文件名称记下来,然后从C:\PCLint8\lnt中将相关文件拷贝到C:\PCLint8下。
2、 新建std.lnt和options.lnt。options.lnt主要用来设置一些选项、屏蔽一些检查错误,可以暂时不写内容。对于std.lnt可以通过config.exe来生成,也可以自己手动编写。
内容如下:
C:\PCLint8\au-sm.lnt
C:\PCLint8\au-ds.lnt
C:\PCLint8\au-misra.lnt
C:\PCLint8\lib-mfc.lnt
C:\PCLint8\lib-stl.lnt
C:\PCLint8\lib-wnt.lnt
C:\PCLint8\co-msc60.lnt
C:\PCLint8\lib-w32.lnt
C:\PCLint8\options.lnt -si4 -sp4
-i"D:\Microsoft Visual Studio\VC98\Include"
-i"D:\Microsoft Visual Studio\VC98\ATL\Include"
-i"D:\Microsoft Visual Studio\VC98\MFC\Include"
其中需要关注的地方就是几个include文件路径,当路径中包含有空格的时候,如果都放在一对双引号里面解析有问题。
3、 与VC集成
问题主要出现在Initial directory这个参数的设置,由于我的工程的目标文件是生成在其他目录的,因此每次执行到处工程lnt文件的时候总是报打不开xxx.dsp,后将该参数修改为$(WkspDir),命令执行正常。