VS2010+Source Insight +PC-Lint开发环境搭建

天涯浪子 提交于 2019-12-01 15:08:00

*参加签约公司的培训之前,公司的学习资料要求,搭建VC+Source Insight+PC-Lint的开发环境,具体流程是Source Insight 编程,VC调试,PC-Lint检查代码,要求是PC-Lint代码告警信息必须为0.
VC以前经常用,Source Insight和PC-Lint以前很少接触,下面简单介绍一下开发环境搭建过程及遇到的问题。
一、安装VS2010和source insight,这一步直接安装就可以。
二、安装PC-Lint。安装完之后会弹出一个配置向导,大可跳过配置步骤,直接利用配置文件进行配置。
三、配置PC-Lint的配置文件,PC-Lint支持多种C/C++标准以及多种IDE开发环境,根据自己的开发环境来配置是很重要的一步。PC-Lint最原始的工作方式是在cmd命令框输入命令和参数,其形式通常为:
c:\lint\lint-nu.exe -u -i c:\lint***.lnt.
其中c:\lint\为PC-Lint的安装目录,*.lnt为配置文件,通常为std.lnt。
当我们安装好PC-Lint之后,会在相应文件夹下面发现很多.lnt文件,这些文件都是PC-Lint开发方提供给我们各个平台的配置文件。
我的安装路径下的lnt文件
例如 env-vc9.lnt就是适合VS2010的配置文件了;env-si.lnt就是适合source insight的配置文件了;如果你的电脑是win32,那么必须要有lib-w32.lnt文件了。
lnt文件还有个特性就是,可以在一个lnt文件里面包含其他lnt文件,加入你是在win32平台用VS2010编程,你可以新建一个lnt文件,将 env-vc9.lnt和lib-w32.lnt都包含进来。
现在,我对PC-Lint的要求是需要支持win32平台下、VS2010编译环境以及source insight编辑环境。经过多次尝试,我的配置文件std.lnt内容如下:
std.lnt的详细配置
四.将PC-Lint工具集成进source insight开发环境,因为我们不可能每次都用命令行来运行PC-Lint检查代码,这样比较麻烦。我们可以将PC-Lint变成source insight的一个工具菜单,直接点击相应的菜单就可以对代码进行检查。
具体操作步骤如下:
1.配置source insigt的options—custom commands 菜单项。
点击options—custom commands—add,在name框输入PC-Lint。其他配置如下图:
custom commands配置
这里解释一下,Run里面输入的其实就是执行命令:
D:\lint\lint-nt.exe -u -i D:\lint\std.lnt %f
表示执行lint-nt.exe这个程序,按照std.lnt这个配置文件来执行。
注意Output、Control以及Source Links in Output的复选框该勾选的都要勾上。
最后点击close,完成这一步,进入下一步。
2.配置source insight 的options—menu assignments 菜单,将PC-lint命令添加进Help菜单。
menu assignments
首先找到PC-Lint,然后找到Menu下拉里面的help,点击insert将其插入help的合适位置,完成后效果如下图:
效果
至此环境搭建基本结束,可以编写代码测试了,但是第一次测试发现,PC-lint会产生相当多的系统头文件告警信息。如图这种,看着头皮发麻!!!!
系统头文件告警信息
我们总不能一一去修改系统头文件吧,所以一般要把系统有文件的告警信息屏蔽掉。屏蔽的方法是,记得我们前面的std.lnt里面包含了一个options.lnt吗,可以在options.lnt里面添加
// Please note – this is a representative set of error suppression
// options. Please adjust to suit your own policies
// See manual (chapter LIVING WITH LINT)
// for further details.
-wlib(0)
这一句就可以屏蔽掉所有头文件告警信息,看,头脑为之一清爽啊!
屏蔽系统头文件告警后的结果
最后补充一点,使用PC-Lint还是很有必要的,因为有些写法可能符合语法规范,且可以编译通过,但是并不安全,PC-Lint可以帮我们发现这些问题,比如:
(1)数组下表越界;
(2)变量为初始化;
(3)野指针。
等等!*

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!