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

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

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

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

PC-lint Plus正式版


GNUake

在大型的开发项目中,通常有几十到上百个的源文件,如果每次均手工键入cc令进行编译的话,则会非常不方便。因此,人们通常利用ake具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。

实际上,make工具通过一个称为akefile的文件来完成并自动维护编译工作。makefile需要按照某种语法进行编写,其中说明了如何编译各个源文件并连接生成可执行文件,并定义了源文件之间的依赖关系。(makefile介绍)

当修改了其中某个源文件时,如果其他源文件依赖于该文件,则也要重新编译所有依赖该文件的源文件。

makefile文件是许多编译器,包括indowsT的编译器维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改akefile件而已。

默认情况下,GNUake具在当前工作目录中按如下顺序搜索akefile:

  • *NUmakefile
  • *akefile
  • *akefile

在UNIX系统中,习惯使用Makefile作为makfile文件。如果要使用其他文件作为makefile,则可利用类似下面的make命令选项指定makefile文件:akefakefile.debug

GNUake的主要预定义变量

GNUake有许多预定义的变量,这些变量具有特殊的含义,可在规则中使用。表-5出了一些主要的预定义变量,除这些变量外,GNUake还将所有的环境变量作为自己的预定义变量。

预定义变量 含义
$* 不包含扩展名的目标文件名称
$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件
$< 第一个依赖文件的名称
$/span> 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚
$@ 目标的完整名称
$^ 所有的依赖文件,以空格分开,不包含重复的依赖文件
$% 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为ytarget.so(image.o),则@ytarget.so,而%mage.o
AR 归档维护程序的名称,默认值为r
ARFLAGS 归档维护程序的选项
AS 汇编程序的名称,默认值为s
ASFLAGS 汇编程序的选项
CC C译器的名称,默认值为c
CFLAGS C译器的选项
CPP C编译器的名称,默认值为(CC)E
CPPFLAGS C编译的选项
CXX C++译器的名称,默认值为++
CXXFLAGS C++译器的选项
FC FORTRAN译器的名称,默认值为77
FFLAGS FORTRAN译器的选项

隐含规则

GNUake含有一些内置的或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。

GNUake持两种类型的隐含规则:

*缀规则(Suffixule)。后缀规则是定义隐含规则的老风格方法。后缀规则定义了将一个具有某个后缀的文件(例如,.c件)转换为具有另外一种后缀的文件(例如,.o件)的方法。每个后缀规则以两个成对出现的后缀名定义,例如,将c件转换为o件的后缀规则可定义为:

.c.o:(CC)(CFLAGS)(CPPFLAGS)co@< 

*式规则(patternules)。这种规则更加通用,因为可以利用模式规则定义更加复杂的依赖性规则。模式规则看起来非常类似于正则规则,但在目标名称的前面多了一个,同时可用来定义目标和依赖文件之间的关系,例如下面的模式规则定义了如何将任意一个.c件转换为.o件:

%.c:%.o(CC)(CFLAGS)(CPPFLAGS)co@<

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

相关内容推荐:

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


想要购买PC-lint Plus正版授权,或了解更多产品信息请点击【咨询在线客服】
标签:软件测试技术C/C++

来源:慧都

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

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

相关推荐

发表回复

登录后才能评论