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

转帖|使用教程|编辑:况鱼杰|2020-11-09 10:41:49.247|阅读 63 次

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

# 31款JAVA开发必备控件和工具 # 企业数字化建设合规无风险[专题]

相关链接:

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

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

点击下载PC-lint Plus正式版


GNU Make

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

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

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

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

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

  • * GNUmakefile
  • * makefile
  • * Makefile

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

GNU make的主要预定义变量

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

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

隐含规则

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

GNU make 支持两种类型的隐含规则:

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

.c.o: $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< 

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

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

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

相关内容推荐:

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


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

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat