前言:

近几天参加公司培训,公司要求,开发的时候使用source insight、PC-lint和VC来编程和调试,这不用不知道,一用吓一跳,这套工具一组合简直爽的根本停不下来。

先说一下各自的作用,source insight主要用于编辑和浏览代码,编写代码的时候它有大量的提示,就像使用了搜狗输入法一般,还有很重要的是把鼠标往一个变量上面一停,下面的上下文窗口就把它的相关定义显示出来了,对于包含大量结构体的复杂系统来说,非常方便,当然还有其他好多优点。然后,是PC-lint,这个是一个静态检查工具,有的时候我们编程序的时候,虽然编译通过了,且功能实现了,但是还是会存在潜在的风险,而编译器往往会把这些潜在的错误放掉,所以公司要求使用PC-lint进行静态检查。最后就是VC了,这个没什么好说的,编译调试工具而已,因为前面两个工具没有编译调试功能,所以使用VC了,我这里由于电脑安装的是VS,所以下面就总结一下source insight、PC-lint和VS的一起使用吧。

一、高效的使用VS和source insight

(1)使用VS建立一个工程,并且在工程中添加必要的源文件,如VS工程文件如下:

(2)在source insight中建立一个工程(注意跟VS的工程建立在同一个文件夹下)

细节如下:

同步完之后可以看到VS中建立的三个文件,以后每次改变工程文件的时候,都要在source insight中project-Add and remove project files中进行文件的添加删除,然后同步。

建立完之后目录如下:

其中VS的源文件,在test中。

这是就可以在source insight中编写代码了,然后记得每次编完之后保存一下文件,再切回到VS工程界面,会问你接受文件改变不?接受的话文件中的内容就被改成在source insight中编写的代码了,反过来一样(因为它们都是对同一个文件进行编码的)。

(3)在source 中添加并同步source insight工程

二、在source insight中集成PC-lint

编完代码之后就可以编译调试了,都搞定之后,可以使用PC-lint进行静态检查,以进一步减少潜在的错误,为了方便时候可以在source insight中集成PC-lint命令,并给它设置一个快捷键,这样使用起来就方便了。

(1)安装好source insight之后,下载一个无需安装版本的PC-lint,然后将其复制到C盘根目录。

(2)source insight中选择options-custom command进行命令设置如下:

其中command名字随便取,这里取的是pc-lint

其他参数如下:

Run: C:\LINT\LINT-NT.EXE option.lnt %f

Dir: C:\LINT

Pattern: ^\([a-zA-Z].*\)(\([0-9][0-9]*\)).*

然后选择add,这回打开这个命令点击run就可以检查运行PC-lint检查source insight当前工程下的文件了,为了更方便的使用这个命令,可以把这个命令添加到别的窗口中,还可以添加快捷键。

options-menu assignments

如下在command中输入关键字,找到要设置的命令PC-lint,然后选择一个Menu中的菜单(如help),还可以调整其位置,然后 insert即可,这回在help菜单中就可以直接看到PC-lint的按钮了。

还可以添加快捷键:

options-keys assignment

这样以后使用ctrl+p就可以直接调用PC-lint进行静态检查了。

如,下面这个提示:表示num1和num2都没有初始化,n定义了但是没有使用。

source insigt、pc-lint、VS联合使用的更多相关文章

  1. PC lint -sem 用法示例

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

  2. Top 40 Static Code Analysis Tools

    https://www.softwaretestinghelp.com/tools/top-40-static-code-analysis-tools/ In this article, I have ...

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

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

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

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

  5. Android Lint简介(转)

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

  6. eclipse lint工具介绍

    一.基本介绍 作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件目录中没有用到的图片等资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidMan ...

  7. Android 性能优化(1)性能工具之「 lint 」 :Improving Your Code with lint:优化代码

    Improving Your Code with lint 1.See Also lint (reference) Using Android Annotations In addition to t ...

  8. Keil MDK中使用pc-lint的详细方法

    keil MDK版本:V4.03 PC-lint版本:  V8.0 关于pc-lint的强大作用,网上有很多,这里不想再复述,只说一句:能通过pc-lint检验的程序不一定没有问题,但通过了pc-li ...

  9. 用VC进行64位编程

    用VC进行64位编程 分类: C/C++2014-04-30 15:14 532人阅读 评论(0) 收藏 举报 本文转自:http://www.usidcbbs.com/read-htm-tid-52 ...

随机推荐

  1. hdu5646(数学)

    小学数学,脑补 一开始看到这题,猜了个规律想写但是我是拒绝的. 因为我无法证明. 好吧,主要还是小学数学没学好吧. 要理解这题,首先得搞懂一个重要问题.假设C=A+B,怎样选择两个正整数使得A*B最大 ...

  2. python中静态方法、类方法、属性方法区别

    在python中,静态方法.类方法.属性方法,刚接触对于它们之间的区别确实让人疑惑. 类方法(@classmethod) 是一个函数修饰符,表是该函数是一个类方法 类方法第一个参数是cls,而实例方法 ...

  3. 自制的几个jquery插件

    1.颜色插件,比用css方便些 //1.插件编写 ;(function ($) { $.fn.extend({ "color":function(value){ return th ...

  4. 移动端之touch事件--手指的滑动事件

    转自[B5教程网]:http://www.bcty365.com/content-142-5243-1.html 总结:touchmove的最后坐标减去touchstart的起始坐标.X的结果如果正数 ...

  5. <2013 08 20> -----澳大利亚博士研究生申请-----

    1.澳大利亚昆士兰大学博士的申请一年中什么时间都可以,但奖学金的评选每年只有四轮.和美国不同的是,在提交申请材料之前,个人必须联系好愿意接收你的导师,这个可以自己套磁联系,也可以和那边学院的小秘联系, ...

  6. window 注册表上下文菜单如何配置?

    注册表结构? Keys Abbreviation Description 描述 HKEY_CLASSES_ROOT HKCR Stores file association and COM objec ...

  7. Django 请求生命周期【图示】

    Django 请求生命周期

  8. 流量分析系统---redis

    1\启动redis 方法一: 修改了某些配置,具体步骤惨开下面的内容 [root@mini1 ~]# service redis stop/start 方法二: [root@mini1 bin]#cd ...

  9. 防止基本的XSS攻击 滤掉HTML标签

    /** * 防止基本的XSS攻击 滤掉HTML标签 * 将HTML的特殊字符转换为了HTML实体 htmlentities * 将#和%转换为他们对应的实体符号 * 加上了$length参数来限制提交 ...

  10. c# 泛型(Generic)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 泛型 { ...