引言##

C/C++语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应也使得代码编写具有很大的随意性,另外C/C++编译器不进行强制类型检查,也不做任何边界检查,这就增加了代码中存在隐患的可能性。如果能够在代码提交测试之前发现这些潜在的错误,就能够极大地减轻测试人员的压力,减少软件项目的除错成本,可是传统的C/C++编译器对此已经无能为力,这个任务只能由专用的代码检查工具完成。有很多C/C++静态代码检查工具,其中Logiscope RuleChecker和PC-Lint 是应用比较广泛的两个工具。本文将介绍如何安装和配置PC-Lint代码检查工具以及将PC-Lint 与常见的代码编辑软件,如Visual C++,Source Insight集成的方法,同时还将简要介绍一些PC-Lint常用的代码检查选项。

版本安装##

1.下载安装包,使用pclint9setup.exe进行安装,假设安装目录为(c:\lint)

2.安装完毕以后,选择”I want to run the configuration program now”,点击finish进入配置向导设置界面。也可以不选择,然后在合适的时机自己手动设置。

3.启动设置向导以后,选择Create a new STD.LNT,在PC-lint安装目录下会创建std.lnt文件

4.选择编译器,我们这里选用的是2008,所以直接选择Microsoft Visual C++ 2008(co-msc90.lnt)

5.选择32-bit Fat Model(-ms, -si4, -sp4)

6.选择常用的库文件,如:Active Template Library(ATL), Microsoft Foundation Class Library(MFC), Standard Template Library(STL), Windows 32-bit, Window NT

7.选择Scott Meyers(Effective C++ More Effective C++ and Effective C++ 3rd Edtion), Dan Saks, MISRA 2004

8.选择Create –I options

9.在界面中添加VC的引用目录,按Ctrl+Enter回车换行

-i"D:\Microsoft Visual Studio 9.0\VC\include"

-i"D:\Microsoft Visual Studio 9.0\VC\atlmfc\include"

-i"C:\Program Files\Microsoft SDKs\Windows\v6.0A\include"

10.选择No

11.选择(env-vc9.lnt)Microsoft’s Visual C++ .Net 2008

12.选择Prepend my PC-lint directory to my PATH(create LSET.BAT)

13.安装完成

安装总结##

我在我的机器上,pclint安装在c:\lint,VS使用的是2008,安装的D盘,各位看官根据自己的安装环境进行选择性设置。

将PC-lint集成到VS2008中##

1.在VS2008的Tools->External Tools中选择”Add”

2.重复添加以下几点工具

Title:       PC-lint (Project Creation)
Command: c:\lint\lint-nt.exe
Arguments: -v -os("$(TargetName).lnt") "$(ProjectFileName)"
Init. Dir.: $(ProjectDir) Title: PC-lint (Project Check)
Command: c:\lint\lint-nt.exe
Arguments: -i"c:\lint" std.lnt env-vc9.lnt "$(TargetName).lnt"
Init. Dir.: $(ProjectDir) Title: PC-lint (Unit Check)
Command: c:\lint\lint-nt.exe
Arguments: -i"c:\lint" std.lnt env-vc9.lnt --u "$(TargetName).lnt" "$(ItemPath)"
Init. Dir.: $(ProjectDir) Title: PC-lint (Simple Check)
Command: c:\lint\lint-nt.exe
Arguments: -i"c:\lint" std.lnt env-vc9.lnt "$(ItemFileName)$(ItemExt)"
Init. Dir.: $(ItemDir)

3.每次添加完毕以后,勾选”Use Output Window”,点击OK保存

IDE中使用说明##

文件检测

先打开需要分析的文件,然后选择菜单VS->Tools->PC-lint(Simple Check),即可执行文件分析。注意:如果分析的目标文件存在引用关系,则会影响分析结果。

项目程序检测

首先在VS的Solution Explorer中选择需要进行分析的项目,然后选择VS->Tools-> PC-lint (Project Creation)菜单创建分析项目的配置文件,创建成功以后,选择VS->Tools-> PC-lint (Project Check)执行项目检测。稍等片刻即可在IDE的Output中看到检测结果。双击检测的行即可跳转到问题目标数据行上。

VS2008集成PC-lint的更多相关文章

  1. VS2008 Pocket PC 2003 SE仿真程序上网设置

    设置大体分为3个步骤:Microsoft ActiveSync安装配置.Pocket PC 2003 SE仿真程序配置.Pocket PC 2003连接到Microsoft ActiveSync. 1 ...

  2. VS2008 Pocket PC 2003 SE VGA仿真程序网络设置

    最近对这个问题摸索的很久,都没有解决,今天终于搞定,现将大体设置步骤记录下来,以备回顾和方便别人查看,步骤如下: 1.打开VS2008,打开Windows Mobile设备中心(网上有下载). 2.连 ...

  3. VS2008 集成Lua解释器

    1. 登陆官网下载源代码 -> www.lua.org -> get started ->  installing  选择系统类型(这里是Windows的,所下面载 luaDist) ...

  4. PC lint -sem 用法示例

    -sem(std::auto_ptr::auto_ptr,custodial(1)) // the auto_ptr class type // handles custody automagical ...

  5. VS2008集成QT的OpenGL开发(实现二维图形的旋转)

    主要是利用Qt中的定时器实现了二维图形的旋转功能: #ifndef QGLTEST_H #define QGLTEST_H #include <QGLWidget> #include &l ...

  6. Qt4.8.6与VS2008的集成开发环境的安装配置

    一.安装编译Qt 1. 在Windows下用Qt做开发,编译器可以用mingw的gcc/g++,也可以用VS. 2. 安装VS2008集成开发环境(完全安装).  3. 安装qt4.8.6(qt-op ...

  7. debug makefile 及 lint 软件质量软件

    make -d should give you more than enough information to debug your makefile. Be warned: it will take ...

  8. [Android Memory] Android Lint简介(转载)

    英文原文:http://tools.android.com/tips/lint  参照文章:http://blog.csdn.net/thl789/article/details/8037473 转载 ...

  9. Android Lint简介(转)

    转载自原文:http://blog.csdn.net/hudashi/article/details/8333349,感谢原作者. 英文原文:http://tools.android.com/tips ...

随机推荐

  1. 没有选择上传的文件或选择的文件大小超出大小(DEDECMS亲身试验成功)

    dedecms升级到5.7后,后台上传压缩包文件,提示"没有选择上传的文件或选择的文件大小超出大小",由于很久都没弄这个系统了,所以最早怎么设置的也忘记了,就上百度搜,基本上有说的 ...

  2. 关于iconfont字体图标的使用

    今天用iconfont遇到了字体图标的使用问题.关于使用字体图标的方式在这里有介绍三种方式(css和js的引入和平时一样) 首先你要分清是用单个字体图标icon,还是多个字体图标icon 关于使用代码 ...

  3. MyBatis之基于XML的动态SQL

    先说下我的梦想,大学的时候一直想着是能开店卖胡辣汤,到目前依然还是我的梦想,上周一家出版社联系我问我有没有时间可以合作出书,这也是我的梦想之一,想了想还是放弃了,至少觉得目前不行,毕竟工作还不到五年, ...

  4. 【笔记】css 实现宽度自适应屏幕 高度自适应宽度

    如果说宽高自适应屏幕尺寸那么大家可能会想到 div{ width: 100%; height: 100% } 但是如果我要自适应屏幕尺寸的同时还要变成正方形呢?(高度和宽度相等而高度不能写死) 那就要 ...

  5. 数据结构 哈希表(Hash Table)_哈希概述

    哈希表支持一种最有效的检索方法:散列. 从根来上说,一个哈希表包含一个数组,通过特殊的索引值(键)来访问数组中的元素. 哈希表的主要思想是通过一个哈希函数,在所有可能的键与槽位之间建立一张映射表.哈希 ...

  6. 寄存器(CPU原理)

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  7. 转:Python之路,Day6 - 面向对象学习

    这篇文章写的不错,转来收了 转自:http://www.cnblogs.com/alex3714/articles/5188179.html   本节内容:   面向对象编程介绍 为什么要用面向对象进 ...

  8. 要学的东西太多了,还想学习opencv

    资料先放这里,以后好好学 http://m.blog.csdn.net/column/details?alias=opencv-tutorial eclipse加载opencv库成功! B站视频教程资 ...

  9. 自己写的日志框架--linkinLog4j--实现基本的框架功能

    OK,上面一步我们已经知道了日志框架的必要性,然后我们也对比了直接不用日志框架来记录日志的种种弊端.现在我们开始就来一步一步的实现自己的日志框架. 大体的思路如下: 1,实现多种日志级别,通过设值不同 ...

  10. PHP面试题超强总结(PHP中文网)

    PHP面试基础题目 1.双引号和单引号的区别 双引号解释变量,单引号不解释变量 双引号里插入单引号,其中单引号里如果有变量的话,变量解释 双引号的变量名后面必须要有一个非数字.字母.下划线的特殊字符, ...