静态分析工具PC-lint Plus使用教程:makefile介绍

本文介绍了PC-lint Plus的使用方法:makefile的介绍。

PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷。与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序。PC-lint Plus采用各种机制,包括数据流分析,数值跟踪,读写分析,强类型检查,功能语义验证和许多其他技术,来提供对单个文件和整个项目强大而全面的分析。

本文介绍了PC-lint Plus的使用方法:makefile的介绍。

PC-lint Plus正式版


Makefile基本结构

makefile中一般包含如下内容:

*要由ake具创建的项目,通常是目标文件和可执行文件。通常使用“目标(target)”一词来表示要创建的项目。

*创建的项目依赖于哪些文件。

*建每个项目时需要运行的命令。

例如,假设你现在有一个/C++文件est.C,该源文件包含有自定义的头文件est.h,则目标文件est.o确依赖于两个源文件:test.Cest.h。另外,你可能只希望利用++令来生成est.o标文件。这时,就可以利用如下的akefile定义est.o创建规则:

#hisakefileustsxample.heollowinginesndicateowest.oependsest.Cndest.h,ndoworeateest.otest.o:est.Cest.h++cgest.C

从上面的例子注意到,第一个字符为行为注释行。第一个非注释行指定est.o目标,并且依赖于est.Cest.h件。随后的行指定了如何从目标所依赖的文件建立目标。

当est.Cest.h件在编译之后又被修改,则ake具可自动重新编译est.o,如果在前后两次编译之间,test.Cest.h没有被修改,而且est.o存在的话,就没有必要重新编译。这种依赖关系在多源文件的程序编译中尤其重要。通过这种依赖关系的定义,make具可避免许多不必要的编译工作。当然,利用hell本也可以达到自动编译的效果,但是,Shell本将全部编译任何源文件,包括哪些不必要重新编译的源文件,而ake具则可根据目标上一次编译的时间和目标所依赖的源文件的更新时间而自动判断应当编译哪个源文件。

一个akefile件中可定义多个目标,利用akearget令可指定要编译的目标,如果不指定目标,则使用第一个目标。通常,makefile定义有lean标,可用来清除编译过程中的中间文件,例如:

clean:

rmf.o

运行akelean,将执行mf.o令,最终删除所有编译过程中产生的所有中间文件。

makefile量

GNUake具除提供有建立目标的基本功能之外,还有许多便于表达依赖性关系以及建立目标的命令的特色。其中之一就是变量或宏的定义能力。如果你要以相同的编译选项同时编译十几个文件,而为每个目标的编译指定冗长的编译选项的话,将是非常乏味的。但利用简单的变量定义,可避免这种乏味的工作:

#efineacrosoramefompilerCcc#efineacrorheClagsCFLAGSD_DEBUGgm486#uleoruildingbjectileest.o:est.cest.h(CC)c(CCFLAGS)est.c

在上面的例子中,CCCFLAGS是ake变量。GNUake常称之为变量,而其他NIXake具称之为宏,实际是同一个东西。在akefile引用变量的值时,只需变量名之前添加号,如上面的(CC)(CCFLAGS)。

本文内容就是这样了,希望对您有所帮助!您可以继续关注我们网,了解更多产品资讯~也可以下载PC-lint Plus试用版免费评估~

相关内容推荐:

PC-lint Plus v1.3.5更新内容>>>


想要购买PC-lint Plus正版授权,或了解更多产品信息请点击【咨询在线客服】

标签:软件测试技术C/C++

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月3日
下一篇 2020年10月3日

相关推荐

发表回复

登录后才能评论