拂晓·明月·弯刀

观望,等待只能让出现的机会白白溜走

  C++博客 :: 首页 ::  :: 联系 :: 聚合  :: 管理 ::

PC-Lint是一款针对C/C++的代码静态分析工具,可以把它看作一种更加严格的编译器,不仅可以检查出一般的语法错误(当前编译器所作的工作),还可以检查出那些符合语法要求但不易发现的潜在错误,如:

  • else对if的就近匹配原则
  • 优先级导致的错误
  • 以0开头的数字(作为8进制处理)
  • &&, ||, ==等的漏写

C/C++语言的灵活性带来了代码效率的提升,但也因其灵活性而带来了代码编写的随意性,另外C/C++编译器不进行强制类型检查,也带来了代码编写的隐患。PC-Lint识别并报告C/C++语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码等等。软件除错是软件项目开发成本和延误的主要因素。根据发现错误时间与成本成指数级的关系,PC-Lint能够帮你在程序动态测试之前发现编码错误。这样消除错误的成本更低。

正因为其重要性,在很多专业级的软件公司,如Microsoft中,PC-Lint检查是无错误无警告是代码首先要过的第一关 本文将就PC-Lint在VC6上的使用作一简单的介绍:

  1. 下载与安装
    官方网址为:http://www.gimpel.com/,但PC-Lint是一款共享软件,因此只能通过其它途径下载使用了,本人使用的是PC-Lint8.0w版本。
  2. 配置
    文件解压后可以看到如下文件:(解压目录为E:\Work\DevLib\pclint,以下将用$(PC-Lint)代替)
     

    可以使用Config.exe的向导功能配置个针对自个环境的lnt文件,我这里是直接编辑文本文件std.lnt,保存在$(PC-Lint)目录下,其中VC6的安装目录为:d:\Program Files\Microsoft Visual Studio\VC98。std.lnt内容如下:
    au-sm.lnt
    co-msc60.lnt
    env-vc6.lnt
    lib-mfc.lnt
    lib-stl.lnt
    lib-w32.lnt
    lib-wnt.lnt
    lib-atl.lnt
    options.lnt -si4 -sp4

    -i"d:\Program Files\Microsoft Visual Studio\VC98\Include"
    -i"d:\Program Files\Microsoft Visual Studio\VC98\atl\include"
    -i"d:\Program Files\Microsoft Visual Studio\VC98\MFC\include"
  3. 在std.lnt中的options.lnt属于新增文件,用于增删某些反映全局编译信息的选项。如"-e783",用于关闭警告信息:当文件不是以空行结束时。
  4. 整合到IDE
    打开VC6菜单上的工具--->定制部分,在工具选项卡中增加PC-Lint项,参数设置如下图所示:
     
  5. 添加快捷键
    打开工具菜单,首先看PC-Lint位于工具组中的很几项(我这里是第8项),然后点击定制--->键盘,在"分类"中选择工具,在命令中选择"UserTool8",将光标移到新建快捷键中,此时在键盘上同时按下"CTRL+F12"键(注意看提示是否此快捷键已经使用),点"OK",就可以用CTRL+F12执行PC-LINT了

  6. 使用
    设置完成后,在菜单的工具栏中就有了PC-Lint项了,对当前打开的C/C++文件,执行此项操作就可以在Output窗口中输出执行信息了,如下图所示: 
    一切正常的话, return code为0,本文这里出现2个错误是由于使用了命名空间std,如不使用则正常,目前也不知道什么原因,main.cpp代码如下:
    1#include <iostream> 
    2int main(int argc, char* argv[]) 
    3
    4(void)argc; 
    5(void)argv; 
    6std::cout<<"Hello, World!\n"
    7return 0
    8}
     
  7. 更多参考
    a. 如何在Source Insight中配置PC-Lint
    b. 在IDE中PC-Lint整个项目文件

    c. PCLint 在VC6.0下的配置使用
posted on 2009-11-10 15:29 一路风尘 阅读(2048) 评论(-3)  编辑 收藏 引用 所属分类: C++技术/工作总结

评论

# re: PC-Lint使用 2012-05-28 11:44 MARISSAHenson26
Do not cash to buy a house? You should not worry, just because this is achievable to receive the <a href="http://goodfinance-blog.com/topics/credit-loans">credit loans</a> to work out such problems. Hence take a consolidation loan to buy everything you want.   回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理