pclint的使用

PC-lint 学习之配置方法 pclint配置 阅读详情

1.   安装

将压缩包比如pclint8.zip拷贝到c:/,解压后重命名目录为c:/pclint

 

版本

Q:如何查看版本?

A:readme.txt

PC-lint for C/C++ Version 8.00e

2.   开始使用

2.1. 不用任何配置,直接使用

2.1.1.    准备待被检查的文件:

先在E:/建一个文件:main.cpp,内容为:

void main()

{  

}

 

2.1.2.    最简单的用法

在命令行下输入:D:/>C:/PCLint/Lint-nt E:/main.cpp

C:/PCLint>C:/PCLint/Lint-nt E:/main.cpp

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   E:/main.cpp

_

}

 

E:/main.cpp  3  Info 783: Line does not end with new-line

 

C:/PCLint>

PCLINT已经工作了,是不是简单的难以让人相信。

2.1.3.    最简单的标准用法

修改被检查的文件E:/main.cpp,内容修改为:

#include <stdio.h>

 

void main()

{

    printf("hello pclint/n");  

}

再次在命令行下输入:D:/>C:/PCLint/Lint-nt E:/main.cpp

D:/>lint

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   E:/main.cpp

         _

#include <stdio.h>

E:/main.cpp  1  Error 322: Unable to open include file 'stdio.h'

 

D:/>

报错误,“不能找到头文件stdio.h

当然PCLINT不可能也不应该知道到哪里去找stdio.hstdio.h所在的路径需要我们告诉它。

如何告诉呢?

通常的做法是在xxx.lnt文件中指定,然后指定使用这个xxx.lnt文件。

最简单的是使用 c:/pclint/std.lnt 这个文件。

 

2.2. std.lnt的配置:

2.2.1.    std.lnt的默认内容

C:/PCLint/std.lnt默认内容为:

//NOTES: DON'T delete the comment string

//author+++

//au-sm.lnt au-ds.lnt au-misra.lnt

//author---

 

//compiler+++

co-gnu3.lnt

//compiler---

 

//library+++

lib-stl.lnt lib-w32.lnt lib-wnt.lnt

//library---

 

//alignment+++

-si4 -sp4

//alignment---

 

3gTdrnc.lnt

 

2.2.2.    修改std.lnt

运行C:/PCLint/CONFIG.EXE(或者直接手工修改std.lnt

最后生成的std.lnt内容为:

//  Microsoft C and Visual C++ 6.x, -si4 -sp4,

//  Standard lint options

 

 

co-msc60.lnt

 

// options.lnt  -si4 -sp4

-i"E:/Program Files/Microsoft Visual Studio/VC98/Include"

-i"E:/Program Files/Microsoft Visual Studio/VC98/MFC/INCLUDE"

-i"E:/Program Files/Microsoft Visual Studio/VC98/ATL/INCLUDE"

 

暂时将options.lnt 这行注释掉。

注:如果生成的std.lnt内容与上面不一样,可以手工修改成上面那样。

 

2.3. 使用std.lnt

再次在命令行下输入:D:/> C:/PCLint/Lint-nt -i"C:/PCLint" -u std.lnt e:/main.cpp

C:/PCLint/Lint-nt -i"C:/PCLint" -u std.lnt e:/main.cpp

-i"C:/PCLint" -u std.lnt 指明使用std.lnt这个选项文件,至于std.lnt在什么目录,通过-i"C:/PCLint"告知。

 

至此,我们已经学会了PCLINT的简单用法及两个选项:-i,-u

-i 指明包含路径

-u 指明使用哪些.lnt文件

 

3.   其它开发工具下的配置

前面我们掌握了命令行方式下PCLINT的使用方法,下面介绍在VC下面的配置及使用。

3.1. VC下的配置

新建一自定义工具项,名称为:PCLINT

其中的Arguments为:-i"C:/PCLint" -u std.lnt env-vc6.lnt "$(FileName)$(FileExt)"

Q:怎么知道要输入这样的参数了?

A:从帮助中得知的,见文件env-vc6.lnt

Q: env-vc6.lnt有什么作用?

A:指定输出错误报告的格式,这个选项可以去掉,比如修改为:

Arguments为:-i"C:/PCLint" -u std.lnt "$(FileName)$(FileExt)"

3.2. 示例

3.2.1.    testForPclint1

新建一个最简单的Win32 Console Application,工程名testForPclint1,其中的main.cpp为:

void main()

{  

}

点击Tools菜单下面的PCLINT菜单项:

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   main.cpp

}

 

main.cpp(3): error 783: (Info -- Line does not end with new-line)

 

--- Global Wrap-up

 

 error 900: (Note -- Successful completion, 1 messages produced)

Press any key to continue

第三行有个错误:error 783: (Info -- Line does not end with new-line)

意思是说没有以新行结束。

注:如果Arguments为:-i"C:/PCLint" -u std.lnt "$(FileName)$(FileExt)"

则结果为:

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   main.cpp

_

}

 

main.cpp(3) : Info 783: Line does not end with new-line

Press any key to continue

 

修改main.cpp为:

void main()

{  

}<---即在这里加一个回车

 

再次LINT,结果没有任何告警:

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   main.cpp

 

--- Global Wrap-up

 

 error 900: (Note -- Successful completion, 0 messages produced)

Press any key to continue

 

3.2.2.    testForPclint2

新建一个最简单的Win32 Console Application,工程名testForPclint2,其中的main.cpp为:

#include "stdio.h"

 

int main(int argc, char* argv[])

{

    printf("hello/n");

}

 

点击Tools菜单下面的PCLINT菜单项:

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   main.cpp

_

}

main.cpp(6) : Warning 533: function 'main(int, char **)' should return a value

    (see line 3)

main.cpp(3) : Info 830: Location cited in prior message

_

}

main.cpp(6) : Info 715: Symbol 'argv' (line 3) not referenced

main.cpp(3) : Info 830: Location cited in prior message

_

}

main.cpp(6) : Info 818: Pointer parameter 'argv' (line 3) could be declared as

    pointing to const

main.cpp(3) : Info 830: Location cited in prior message

_

}

main.cpp(6) : Info 715: Symbol 'argc' (line 3) not referenced

main.cpp(3) : Info 830: Location cited in prior message

Press any key to continue

4个告警,修改main.cpp为:

#include "stdio.h"

 

int main(int argc, char* argv[])

{

    (void)argc; // pc lint

    (void)argv; // pc lint

    printf("hello/n");

 

    return 0;

}

 

再次LINT,无任何告警了。

PC-lint for C/C++ (NT) Ver. 8.00q, Copyright Gimpel Software 1985-2004

 

--- Module:   main.cpp

Press any key to continue

 

4.   使用批处理方法

为什么要使用批处理?还不是为了使用更简单。

我们在C:/PCLint建一个批处理文件lint.bat,内容为:

@echo off

C:/PCLint/Lint-nt -i"C:/PCLint" -u std.lnt e:/main.cpp

 

为了支持输入参数,修改为:

@echo off

C:/PCLint/Lint-nt -i"C:/PCLint" -u std.lnt %1

 

这时候我们不能简单输入D:/>lint.bat,而必须加上输入参数:

D:/>lint.bat e:/main.cpp

PC-lint安装及配置》 它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码,等等。说明:以上配置过程中在配置路径下产生的多个*.lnt文件,除了std.lnt,std_a.lnt,std_b.lnt,option.lnt为配置向导所生成,其它co-xxx.lnt,lib-xxx.lnt,env-xxx.lnt均是从C:\Lint8\lnt中拷贝出来的,在这个目录下还有其它PCLint所支持的编译器、库及集成开发环境的lnt配置文件,所有的lnt文件均为文本文件。 阅读详情

相关推荐

软件质量之道:PCLint之一

今天的主题,PCLint,自觉这部分至少可以分为两篇文章,如果要深入讲解,足以涵盖《Effective C++》,《More Effective C++》等书的内容,所以还是只介绍用法,要想知道的更多,那就Google一下吧! 第一部分内容,主要介绍PCLint的功能以及如何安装。第二部分内容则讲解PCLint如何使用(暂时这么计划的,也许会突发奇想出来第三部分第四部分,那就请继续关注吧)。

风马牛 3646

开发环境 之二 PC-lint 使用说明

PC-Lint 是一款 C/C++ 软件代码静态分析工具,不仅可以检查一般的语法错误,还可以检查潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量、使用空指针等。在单元测试前使用 PC-Lint 来检查代码,可以提前发现程序中的潜在的错误,提高代码的质量。

技术干货 7227

Linux下通过docker实现Pclint检查

目前所属项目的pclint的CI job依然采用windows节点实现,需要单独配置一台windows机器实现,既不方便管理也不能充分利用资源,所以考虑改造为linux实现。linux下实现pclint主要采用通过wine工具模拟windows来执行的方式,另外,为方便部署,所以考虑用docker进行部署,方法如下: 1,基本环境创建 公司的镜像仓库里有公共的的wine镜像,极...

weixin_42826352的博客 919

PC-Lint使用方法(一)

PC-Lint是一款C/C++软件代码静态分析工具,不仅可以检查一般的语法错误,还可以检查潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量、使用空指针等。在单元测试前使用PC-Lint来检查代码,可以提前发现程序中的潜在的错误,提高代码的质量。本文主要从两个方面介绍PC-lint,第一部分是在与不同的工具安装集成,第二部分是PC-lint使用方法。1. 安装PC-lint及如何集成到

逍遥剑客的专栏 6万+

静态代码检查工具PC-Lint(2)

3.5 格式检查    PC-Lint会检查printf和scanf(及其家族)中的格式冲突,例如:printf( "%+c", ... )将产生566告警,因为加号只在数字转换时有用,有超过一百个这样的组合会产生告警,编译器通常不标记这些矛盾,其他的告警还有对坏的格式的抱怨,它们是 557和567。我们遵循ANSI C建立的规则,可能更重要的是我们还对大小不正确的格式进行标记(包括告警5

Make Progress Everyday! 4862

pclint下载、安装和使用

最近发现有一款C编程语法检查工具:pclint,刚好手头上的项目需要,而且Keil编译器无法检查比较弱,所以就捣鼓了一下,用上了! 环境:windows KeilC51

qq_40632679的博客 6326

pclint

pclint 升级和使用2006-12-04 18:471.先随便找个网,把lint包down下来,解压到c:/lint 下(任意) 然后进入命令行模式,到c:/lint 下,键入lint-nt -v查看版本号,可能显示如下 PC-lint for C/C++ (NT) Ver. 8.00a, Copyright Gimpel Software 1985-2001你看,

lgtnt的专栏 5588

VIM整合PcLint

PCLINT可对源代码进行静态检查,通过它可以发现许多隐藏在代码的BUG,PCLINT可以很方便整合到VC,SourceInsight,其实通过make命令也可以将PcLint整合到VIM,在QuickFix窗口显示Lint结果,通过:cn,:cp可很方便跳转到有BUG的代码行.先安装配置PCLINT:http://www.yuanma.org/data/2006/0529/article_5

leroywang的专栏 1580

PClint配置

建一个proj.bat批处理文件, 文件内容如下:d:/pclint/lint-nt.exe -id:/pclint/check include.lnt  std.lnt option.lnt files.lnt %1 %2 %3 %4 %5 %6 %7 %8 %9{假设pclint存放在d:盘根目录下, include.lnt std.lnt option.lnt files.lnt 都

AfricaHyena的专栏 5864

pclint在 vs2008下的配置

评论:VS2008自带的静态检查工具也不错,使用方法工具栏"Analyze"->Run Code Analysis On Only ....VS2008配置PC Lint (静态代码检查工具PC-Lint)转自  http://hi.baidu.com/spongcer/blog/item/c66cc6f82ea39278034f56b5.htmlPC-Lint的典型应用:1、检查区分int和BO

rabbit729的专栏 3783

Pclint VC配置

VC6 配置Pclint: 1. 配置 Pclint,for VC6:     (1). 将lint.rar解压至 C 盘根目录, C:\lint 即为 Pclint 的安装目录     (2).将 C:\lint\lnt 下的3个文件 lib-w32.lnt,env-vc

zhangcunli的专栏 3219

PCLint】 Keil环境下使用方式

不说PCLint的安装 PCLint的配置 Keil环境搭建 检查方法 不说PCLint的安装 网上一大堆,自己找 PCLint的配置 找到PClint的安装路径,打开“CONFIG.exe”配置软件。 其Welcome界面如下,点击“下一步”: 其PC-lint for C/C++ v9.00界面如下,点击“下一步”: 其PC-lint界面如下,选择配...

吴秀华Cherry的有趣博客 3853

PcLint集成

PcLint集成keil4.0 vs2005 vc6.0环境方法 V1.00.001                     编写 审核 批准 作者 赵立新     完成日期

1751

PCLint

转载自:http://blog.csdn.net/feng_ma_niu/article/details/40631521。也进行了一些修改 1 PCLint简介 首先,提供一下PCLint的相关链接: 官网:http://www.gimpel.com/html/index.htm 最新9.0L安装包:http://download.csdn.net/detail/winking324

3791

PCLint选项详解

目  录 18 9.1 Source Insight的正规表达式 ........................................ .......... 18 9 附录:PCLint在Source Insight中的使用 ................................... .......... 17 8.6 使告警最大化 .................

gavinxw123456的专栏 9396

pclint在VS2013中的配置

在VS2013下使用pclint进行单个文件及整个工程的方法

finewind的专栏 1万+

linux pclint配置_自动代码检查分享之PCLINT

当我们花了很长时间来重现和排查一个问题后,发现原来是由于变量未赋初始值;当我们排查一个客户重大异常后,发现原因尽然是IF判断时用了单等号。这些都是比较低级的问题,但凡一个有基础的程序员都能看出来写错了,但是每个人都有可能犯这种错误,那么如何避免类似的错误出现呢?俗话说:常在河边走哪有不湿鞋,对于这种有规则且重复性的工作,靠人工是不行的,必须要引入工具检查,从而避免此类错误的再次出现。而对于C/C+...

weixin_39541681的博客 695
上一篇: cygwin
下一篇: WAP(wml)开发faq
lei001
博客等级 码龄22年 46粉丝 19原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值