在makefile中的变量定义有两种方式:一种是递归展开方式,例一种是:简单方式。
递归方式是在引用该变量时进行替换的,即如果该变量包含了对其他变量的应用则在引用该变量时一次性讲内嵌的变量的变量全部展开。
简单扩展型变量的值在定义出展开,并且只展开一次,因此它不包含任何对其他变量的引用,从而消除变量的嵌套引用。
递归展开方式的定义:VAR=var
简单展开方式的定义:VAR:=var
makefile常见的预定义变量
AR:库文件维护程序的名称,默认值为ar
AS:汇编程序的名称,默认值为as
CC:C编译器的名称,默认是cc
CPP:c预编译器的名称,默认值为$(CC)-E
CXX:c++编译器的名称,默认值g++
FC:FORTRAM编器的名称
RM:,文件删除,默程序的认值:rm -f
ARFLAGS:库文件维护程序的选项,无默认值
CFLAGS:c编译器的选项
FFLAGS:编译器的选项,无默认值
FORTRAN:编译器的选项。
$*:不包含扩展名的目标文件名称
$+:所有依赖文件以空格分开,以出现的先后顺序,可能包含重复的依赖文件
$<:第一依赖文件的名称
$?:所有时间戳比目标文件晚的依赖文件,并以空格分开
$@:目标文件的完成名称
$^:所有不重复的依赖文件,以空格分开
$%:如果目标是归档成员,则该成员表示目标的归档成员名称。
阅读(993) | 评论(0) | 转发(0) |