故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能。

孟子

1 引子

今天听老韩一席话,当真是感慨万千啊。心怀斗志昂扬,奋斗十年,到头来,却看到身边的人一个个贪图安逸,没有独当一面的才能,让人颓然失望。可以说这几年来,我也曾怀着这样的期盼,希望身边的朋友们能够借我一把力,共同奋斗,创造一些“奇迹”,但是每次也都是失望,失望,还是失望。

虽然前人们都说,在这个时代,没有独行者。但是,茫茫人海之中,想要找一个志同道合者,太难。并且,没有一个共同的目标,也很难找到志同道合者。所以,在这段日子,还是做一个默默地独行者更好,省却了若干烦心事。

但是,总不能因为别人,就失去了对自己的信心。自己能力有限是正确的,从小老爸就告诉我,要知道自己能吃几碗干饭。正如孟子所言,既然知道自己的能力,那就动心忍性,努力去学习,提高自身能力。

所以,虽然我可以理解这种心情,但是原谅我不能同意这种能力有限的结果。

以铜为鉴,可正衣冠;以古为鉴,可知兴替;以人为鉴,可明得失。每次员工大会,都颇有收获,实在是听君一席话,胜读十年书的感觉。小韩所谓C++的一万个小时,自以为还是远远不够的,假设平均每天工作学习十个小时,那么需要一千天,大概为三年时间。自从2012年2月份实习到如今,大概也有2年半的时间了,基本上每天都保持看书学习以及工作的习惯,但是却越加觉得C++之深厚,要想真正精通,还需要2年半的时间吧。也许2年半后,又觉得再需要5年时间吧,嘛,太极之意,“忘记”所有,便是大成之时吧。

又跑题了,开始今天的主题,PCLint,自觉这部分至少可以分为两篇文章,如果要深入讲解,足以涵盖《Effective C++》,《More Effective C++》等书的内容,所以还是只介绍用法,要想知道的更多,那就Google一下吧!

第一部分内容,主要介绍PCLint的功能以及如何安装。第二部分内容则讲解PCLint如何使用(暂时这么计划的,也许会突发奇想出来第三部分第四部分,那就请继续关注吧)。

2 PCLint简介

首先,提供一下PCLint的相关链接:

官网:http://www.gimpel.com/html/index.htm

最新9.0L安装包:http://download.csdn.net/detail/winking324/8162819

接下来,简单介绍一下PCLint到底是一个什么样的工具。

PCLint是GIMPELSOFTWARE公司研发的C/C++软件代码静态分析工具,可以说,PCLint是一种更加严格的编译器。其主要分为PCLint和FlexeLint,PCLint主要应用于Windows平台,以二进制可执行文件提供,而FlexeLint应用于其他平台,例如Linux,以源代码形式发布。

PCLint在全球拥有广泛的客户群,许多大型的软件研发组织都把PCLint检查作为代码走查的第一道工序,例如说华为(感谢华为,让我学习到如此强大的工具)。PCLint不但能够对程式进行全局分析,识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针连同冗余的代码,还能够有效地提出许多程序在空间利用、运行效率上的改进点。

总结下来,PCLint就是不通过执行程序进行代码分析,发现代码中潜在的Bug。通过个人实践来看,PCLint可以发现非逻辑上的80%左右的Bug,绝对是C++开发以及测试人员一个强大的助手(爸爸妈妈再也不用担心我写错代码了)。

既然PCLint如此强大,那么问题来了。

3 PCLint安装及初步配置

安装主要根据上面的最新9.0L安装包进行讲解,2014年10月16日更新,本人亲自打包,并增加自动更新脚本,方便一步操作(资源1分就当赞助费了,谢谢,如果没有分数下载,请留言邮箱)。

安装包主要包含如下两部分(原谅我的小广告,请支持2345.com):

第一个Update为升级包,第二个Gimpel_PC_Lint_9.zip为PCLint的安装包。

1. 解压PCLint的安装包,并进行安装,直接Next到最后一步,选择执行配置程序,并点击Finish。如果这里没有选择执行配置程序,可以通过执行安装目录下的CONFIG.exe来执行配置程序。

2. 接下来弹出PCLint的配置程序,点击下一步开始配置。

3. 说明执行完PCLint配置后,会生成执行脚本以及PCLint的配置文件(*.lnt),继续下一步。

4. 选择生成路径,安装路径即可,以及文件名称,然后下一步。

5. 选择编译器,VisualStudio现在最高只有2008,所以只好选择这个了,选择后点击下一步。

6. 选择平台,根据自己的需要,选择对应的平台,这里选择32bit,点击下一步。

7. 选择依赖的库,对于VisualStudio开发来说,主要包括Active Template Library(ATL),Microsoft FoundationClass Library,Standard Template Library,Windows 32-bit这四部分,选择后下一步。

8. 选择一些特殊的优化建议,例如说代码安全性和效率上的。这里按照最大原则进行选择,有:Scott Meyers(Effective C++ More Effective C++ and Effective C++ 3rdEdition),Dan Saks,MISRA 2004,然后下一步(PS:Effective C++这两本巨作真心的给力,C++入门必读经典)。

9. 指定当前使用库的头文件所在位置,选择Create –i options,并下一步,否则执行PCLint时会因为找不到头文件而失败。

10.选择头文件路径,以分号或者换行(Ctrl + Enter)区分,这里仅添加Visual Studio的标准头文件。由于不同的公司或者组织,其文件组织方式可能不一样,又或者包含了其他的各种库,所以有需要可以在这里进行添加,或者执行PCLint时出现错误,修改*.lnt文件添加即可。

11.提示是否打开新的配置,选择否。

12.创建OPTIONS.LNT文件,就是简单几个问题,由于我这边显示内容不全,所以选择No,然后下一步,如果显示全的话可以分别看一下,就是一些实例代码,然后选择一下即可。

13.选择对应的开发环境,这里最高只有VC9,所以对应选择这个即可。

14.添加PCLint到系统环境变量中。

15.经过漫长的配置设定,总算完成了。

4 PCLint更新

经过上面复杂的安装及配置后,接着就需要更新一下PCLint程序,使其支持更多的C++检查项等。

1. 解压压缩包中Update目录下所有文件到PCLint的安装路径,例如我的PCLint安装在D盘,则对应文件路径应该为:

D:\lint\l9-a-b.lp

D:\lint\lpatch.exe

D:\lint\Update.bat

2. 双击Update.bat,进行PCLint的更新,更新成功后的结果如图。

最后一行,版本号应该为9.00L。如果不正确,请进行路径或者文件是否正确的检查。

另外,说明一下更新的方法,首先,要确定当前PCLint的版本号,方法为使用cmd定位在PCLint的安装路径下,执行lint-nt.exe–v即可。其次,去官网上下载最新的更新程序lpatch.exe以及更新包(例如l9-a-b.lp等),将其拷贝到安装路径下,执行命令lpatch.exe l9-a-b.lp即可。

5 进一步思考

可惜不是周末,也不是周五,不能一口气写完。同学们就先尝试一下安装和升级方法吧,如果已经熟练掌握了,可以通过Google等查看如何进行C++代码的检查,或者查看一下PCLint的手册,绝对可以大涨姿势,学习到很多C++编程中的注意项。如果能写出一把连PCLint都没有一个Warning或者Error的代码,那么恭喜你,你已经成为一个C++的牛人了!

昨天看到一句不错的话,时间,抓起了就是黄金,虚度了就是流水;书,看了就是知识,没看就是废纸;理想,努力了才叫梦想,放弃了那只是妄想。努力,虽然未必会收获,但放弃,就一定一无所获。

想起李科分享的一句话,对于产品人员,最重要的就是好奇心。我想说的是,对于开发人员,最重要的就是尝试心!是是非非,对对错错,不过就是一个Hello World!

软件质量之道:PCLint之一相关推荐

  1. 软件质量之道:PCLint之中的一个

    故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能. 孟子 1 引子 今天听老韩一席话,当真是感慨万千啊.心怀斗志昂扬.奋斗十年,到头来.却看到 ...

  2. 软件质量之道:SourceMonitor

    有些事非做不可,并非为了幸福,而是缓解痛苦,因为不做,则更痛苦--这便是无奈. 夏中义 <文心独白> 1 引子 博客又有一阵子没更新了,最近认真思考了阿里上市的成功之处:选择和坚持.其实人 ...

  3. 重读【代码整洁之道】

    一.前言 [代码整洁之道]很经典,但也有些过时,翻译上也有些啰嗦,但总体上是好书.通过对本书核心内容的摘抄,结合自己的经验,整理了一些精简的点,这样你就省的去啃那本400多页的书了. 软件质量 = 架 ...

  4. 《代码整洁之道》(Clean Code)- 读书笔记

    一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...

  5. 整洁代码之道——重构

    写在前面 \\ 现在的软件系统开发难度主要在于其复杂度和规模,客户需求也不再像Winston Royce瀑布模型期望那样在系统编码前完成所有的设计满足用户软件需求.在这个信息爆炸技术日新月异的时代,需 ...

  6. 代码整洁之道(Clean Code)- 读书笔记

    Sorry, 许久未更新文章了,主要因为刚刚换了一家新公司,忙于组建团队(建设.招聘.流程.框架等)与熟悉公司业务,还有领导给的其他工作等等,实在是没有时间更新了.最近在和团队分享Bob大叔的< ...

  7. 测试之道--阿里巴巴八年测试专家倾情奉献

    摘要: 我从事测试工作将近八年了,从起初的不懂测试,怀疑测试,到相信测试,再到坚定测试,其中经历的辛酸.煎熬无法言表.在从事测试工作的这八年里,有人质疑,也有人追捧,唇枪舌剑,没完没了,貌似测试永远都 ...

  8. 阿里高级技术专家张建飞:应用架构分离业务逻辑和技术细节之道

    中生代技术 链接技术大咖,分享技术干货 全文:4449字14图 张建飞 <从码农到工匠> 读完需要 9 分钟 速读仅需 3 分钟 架构 什么是架构? 关于架构这个概念很难给出一个明确的定义 ...

  9. 程序员修炼之道 pdf_程序员修炼之道-注重实效

    本篇文章是阅读<程序员修炼之道--从小工到专家>第一章 "注重实效的哲学" 的笔记.有了一些开发经验后再看这本书会比较有感触,本书第一章讲了一些对程序员最基本的要求,如 ...

最新文章

  1. php找不到phpmyadmin,nginx下找不到phpmyadmin文件
  2. 中国照明市场运营现状及发展前景分析报告2021年版
  3. CentOS中通过NAT连接网络
  4. PHP+Ajax手机移动端发红包实例
  5. duilib环境配置以及简单入门介绍
  6. android studio 运行找不到类,android-studio – Android Studio找不到TestCase类
  7. 打开*.HLP时,系统提示*.hlp是为此Windows版本不支持的语言创建的的解决方法!
  8. OPNFV发布首个版本Arno
  9. 下列字符是c语言保留两位小数,c语言中保留两位小数
  10. Elasticsearch 版本 和SpringData ElasticSearch 版本以及SpringBoot版本选择
  11. win10 cortana 没反应解决方法
  12. GEE开发之Modis_LST地表温度数据分析
  13. Thread小练习(网图下载)
  14. 【计算机图形学】基于OpenGL的中点Bresenham算法画直线
  15. 华为笔记本触控板手势操作_如何在笔记本电脑触控板上使用Windows 8的手势
  16. DO-Conv 涨点模块
  17. 关于安卓自定义进度条(二)
  18. Myeclipse 手动安装Velocity插件
  19. 可视化大屏赋能智慧医疗
  20. D. 软件备份(拷贝构造函数)

热门文章

  1. 程序猿生存指南-34 我与清华
  2. oracle ora-03114
  3. python2.7安装pytorch_Pytorch如何安装,Linux安装Pytorch,OSX安装Pytorch教程
  4. vue 创建一个登录界面
  5. 关于游戏开发,如何开发一款游戏(基于unity)
  6. 三种方式修改 MySQL 数据库名
  7. idea 亮度 调整_AOC显示器亮度怎么调 冠捷亮度调整方法
  8. C++定义全局变量的两种方式
  9. [转...转] 国内软件破解下载网站列表!
  10. 【奔腾的骏马---Html+CSS实现(附源代码)】