PClint配置及使用说明.docx
- 文档编号:17761109
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:14
- 大小:152.86KB
PClint配置及使用说明.docx
《PClint配置及使用说明.docx》由会员分享,可在线阅读,更多相关《PClint配置及使用说明.docx(14页珍藏版)》请在冰点文库上搜索。
PClint配置及使用说明
1.1简介
如果要给lint工具下一个形象点的定义,那就是:
一种更加严格的编译器。
它不仅可以象普通编译器那样检查出一般的语法错误,还可以检查出那些虽然完全合乎语法要求,但很可能是潜在的、不易发现的错误。
请看下面的例子:
1:
char *report( int m, int n, char *p )
2:
{
3:
int result;
4:
char *temp;
5:
long nm;
6:
int i, k, kk;
7:
char name[11] = "Joe Jakeson";
8:
nm = n * m;
9:
temp = p == "" "null" :
p;
10:
for(i = 0; i 11: { 12: k++; 13: kk = i; 14: } 15: if(k== 1) result = nm; 16: else if(kk > 0) result = 1; 17: else if(kk < 0) result = -1; 18: if(m == result) return(temp); 19: else return(name); 20: } 上面的代码用一般的编译器编译是一段有效的代码,但是用PC-Lint编译就会有几个告警。 首先第7行向name数组赋值时丢掉了nul字符,第8行的乘法精度会失准,第9行的比较有问题,第12行的变量k没有初始化,第13行的kk可能没有被初始化,第18行的result也有可能没有被初始化,第19行返回的是一个局部对象的地址。 这段代码在大部分编译器下是可以顺利编译通过的,继续查找其中的错误就要靠人工调试程序,如果程序很大,这将是一项烦琐的工作,没有人可以保证能找出所有的这类问题,但PC-Lint只通过一次简单的编译就可做到,显然为我们节省了大量的开发时间。 由于我们现有的PC-Lint不是安装版,解压后直接使用,因此省略了安装步骤,而直接进入配置阶段。 此外,PC-Lint配置选项比较多,本文档不对其一一进行说明,只介绍一种通用的配置方法。 1.2文件部署 将提供的压缩文件包解压至C: \lint目录,然后在此目录下创建一个用于保存自定义配置文件的config子目录。 点击运行进入配置过程。 1.3选择配置目录 由于是第一次使用PC-Lint,选择配置目录时如下图所示选取前面刚刚创建的config目录,并选择“Createanew”创建一个新的。 1.4选择编译器 在该页面的编译器列表中提供了50多种流行的C/C++编译器,如果表中没有自己使用的编译器,可选择通用编译器“Generic Compilers”。 1.5选择内存模型 该页面会让你选择一个内存模型,可以根据自己程序区和数据区的实际大小选择一个恰当的内存模型。 根据我们所使用的CPU类型,需要选择“32-bit Flat Module”,内存模型的选项会体现在文件中。 1.6选择库类型 选完内存模型后,会看到一个库类型列表,根据实际编译的需要可以在这里选择一个或多个编译时使用的库,在此我们选择“Windows32-bit”。 这个选项会体现在文件中。 1.7选择作者 接着是让你选择为使用C++编程提出过重要建议的作者,选择的某作者后,他提出的编程建议方面的选项将被打开。 与作者选择有关的选项会体现在文件中。 1.8设置包含目录 下一步是设置包含文件目录。 共四个选项,第一个是直接使用现有系统环境变量INCLUDE作为包含文件目录;第二个是让我们立即设置INCLUDE系统环境变量;第三个是使用-i选项,-i选项体现在文件中,每个目录前以-I引导,目录间以空格分隔,例如可设成“-IC: MRIMCC68K -ID: LAPSRCINC”,如果选择使用-I选项,安装程序会接着让你输入包含文件所在的目录;第四个是跳过该页面。 我们将在后面的具体使用中设置包含文件搜索路径,在此选择“INCLUDEisalreadyusedforthispurpose”。 此时,安装程序会提示和文件已经在C: \lint\config目录中被创建。 确认后会询问是否选择配置更多的编译环境,此处选择否。 1.9生成选项文件 接下来会询问是否产生一个用于结果消息过滤的选项文件,我们暂时跳过该步骤,先生成一个空的文件,等以后在实际应用时加入必要的选项。 1.10集成到开发环境 接着是选择工作环境。 PC-Lint提供了集成在多种开发环境中工作的功能,例如可集成在VC7、CodeWarrior或Source Insight中。 由于我们的源文件不是安装版本,假如在这里选择后会提示出错,因此在该页面中不进行任何选择。 1.11生成批处理文件 安装程序最终会在C: \lint\config目录下生成一个文件,该文件是运行PC-Lint的批处理文件,为了使该文件能在任何路径下运行,安装程序提供了两种方法供你选择。 第一种方法是让你选择把拷贝到任何一个PATH目录下,在安装结束后会把自动拷贝到你指定的目录。 第二种方法是生成一个文件,在每次使用PC-Lint前先运行它来设置路径,或者把文件的内容拷贝到文件中。 此处选择“CopytooneofmyPATHdirectories”然后将其拷贝到即将进行lint检查的源文件目录下。 1.12用命令行方式进行lint 1.12.1编辑批处理文件 按照上一章介绍的配置过程在C: \TestCpuUsage目录生成的文件内容如下: "C: \lint\Lint-nt"+v-i"C: \lint\config"-os%1%2%3%4%5%6%7%8%9 type|more @echooff echo--- echooutputplacedin 由于此时还没有设置头文件搜索路径,因此还不能进行lint检查。 在-i选项后添加所有可能用到的路径,甚至需要包含一些标准库中的路径。 总之,应该在-i""中包含所有用到的头文件包含路径,否则会提示找不到相关文件。 编辑后的文件内容如下: "C: \lint\Lint-nt"+v-DPLUS;__UREG_DEF_H;_M_IA64;SIMULATE-i"c: \lint\config;TestCpuUsage/dspi;TestCpuUsage/include;"-os%1%2%3%4%5%6%7%8%9 type|more @echooff echo--- echooutputplacedin 1.12.2生成待检查的源文件集合 在控制台模式,进入TestCpuUsage工程根目录执行以下命令 $\TestCpuUsage>dir/s/b*.cpp*.c> 将该工程中包括子目录中的所有扩展名为*.cpp和*.c的源文件列表输出到中作为后续检查的基准。 1.12.3进行lint检查 做好以上准备工作后,执行以下命令 $Project$\TestCpuUsage>lin 就可以象命令行编译那样进行lint检查了,输出的结果信息保存在文件中。 1.13用开发环境进行lint 也可以使用开发环境来执行lint操作,一般开发环境都支持运行可执行文件,但不一定支持运行批处理文件。 如果我们在先前的配置过程中选定了使用某个开发环境,安装程序会在你安装的目录下生成一个的文件,例如选择了Source Insight就会有一个文件。 用编辑器打开该文件,在该文件开始的注释中说明了如何将PC-Lint功能集成在开发环境中,此处不进行这方面的详细介绍。 1.14lint选项 lint的选项很多共有300多种,大体可分为以下几类: 错误信息禁止选项 -e#禁止生成某类错误信息; +e#恢复生成某类错误信息; -w#对于所有大于级别的告警信息都不显示; -wlib()对于所有大于级别的关于库函数数的告警信息都不显示。 我们可以用-wlib(0)来屏蔽所有的库函数的告警信息,-wlib (1)只显示库函数中的句法错误。 -esym(#,) 可以屏蔽对于特定符号的某告警信息。 注1: 错误信息禁止选项可以在命令行直接使用,也可以加在前面生成的批处理文件中,当在命令行使用时,不能放在被检测文件的后面,而应该插入到lint命令与被检测文件名的中间(如lin–w2); 注2: 执行lint目录下的可以输出文件,这个长达5000行的文件包含了所有的错误信息号和相应的解释。 错误信息分类 大部分的错误信息都有一个对应的错误编号。 在中可以得到导致错误的详细信息,C++中的错误信息号与C中的相应错误信息号相差1000。 总结如下: C C++ WarningLevel 说明 SyntaxErrors 1-199 1001-1199 1 语法错误 InternalErrors 200-299 0 内在的错误,不会发生 FatalErrors 300-399 0 致命的错误,将会导致超过某种限制 Warnings 400-699 1400-1699 2 指明程序中很可能出错 Informational 700-899 1700-1899 3 指明程序中可能出错,也可能是个人风格的合法编程实践 ElectiveNotes 900-999 1900-1999 4 不会自动输出,可以检查列表确定是否需关注
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PClint 配置 使用说明
![提示](https://static.bingdoc.com/images/bang_tan.gif)