GNU make 有许多预定义的变量,这些变量具有特殊的含义,可在规则中使用。下表给出了一些主要的
预定义变量,除这些变量外,GNU make 还将所有的环境变量作为自己的预定义变量。
预定义变量????????????????????? 含义
$*????????????? 不包含扩展名的目标文件名称。
$+????????????? 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
$<????????????? 第一个依赖文件的名称。
$?????????????? 所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
$@????????????? 目标的完整名称。
$^????????????? 所有的依赖文件,以空格分开,不包含重复的依赖文件。
$%????????????? 如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称
??????????????? 为 mytarget.so(image.o),则 $@ 为 mytarget.so,而 $% 为 image.o。
AR????????????? 归档维护程序的名称,默认值为 ar。
ARFLAGS???????? 归档维护程序的选项。
AS????????????? 汇编程序的名称,默认值为 as。
ASFLAGS???????? 汇编程序的选项。
CC????????????? C 编译器的名称,默认值为 cc。
CCFLAGS???????? C 编译器的选项。
CPP???????????? C 预编译器的名称,默认值为 $(CC) -E。
CPPFLAGS??????? C 预编译的选项。
CXX???????????? C++ 编译器的名称,默认值为 g++。
CXXFLAGS??????? C++ 编译器的选项。
FC????????????? FORTRAN 编译器的名称,默认值为 f77。
FFLAGS????????? FORTRAN 编译器的选项。
出处:http://www.aka.org.cn/Lectures/001/Lecture-1/make.html
最新评论