make 的主要预定义变量

GNU 的  make 工具除提供有建立目标的基本功能之外,还有许多便于表达依赖性关系  
以及建立目标的命令的特色。其中之一就是变量或宏的定义能力。如果你要以相同的编译  
选项同时编译十几个  C 源文件,而为每个目标的编译指定冗长的编译选项的话,将是非  
常乏味的。但利用简单的变量定义,可避免这种乏味的工作:  
# Define macros for name of compiler 
CC = gcc 
 
# Define a macr o for the CC flags 
CCFLAGS = -D_DEBUG -g -m486 
 
# A rule for building a object file 
test.o: test.c test.h 
    $(CC) -c $(CCFLAGS) test.c 
在上面的例子中, CC  CCFLAGS 就是  make 的变量。 GNU make 通常称之为变量,  
而其他  UNIX  make 工具称之为宏,实际是同一个东西。在  makefile 中引用变量的值  
时,只需变量名之前添加  $ 符号,如上面的  $(CC)  $(CCFLAGS) 
GNU make 
有许多预定义的变量,这些变量具有特殊的含义,可在规则中使用。表  13-2  
给出了一些主要的预定义变量,除这些变量外, GNU make 还将所有的环境变量作为自己  
的预定义变量。  
 13-2  GNU make 的主要预定义变量  
预定义变量  
含义  
$* 
不包含扩展名的目标文件名称。  
$+ 
所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。  
$< 
第一个依赖文件的名称。  
$? 
所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。  
$@ 
目标的完整名称。  
$^ 
所有的依赖文件,以空格分开,不包含重复的依赖文件。  
$% 
如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为   
mytarget.so(image.o)
,则  $@  mytarget.so,而  $%  image.o 
AR 
归档维护程序的名称,默认值为  ar 
ARFLAGS 
归档维护程序的选项。  
AS 
汇编程序的名称,默认值为  as 
ASFLAGS 
汇编程序的选项。  
CC 
编译器的名称,默认值为  cc 
CFLAGS 
编译器的选项。  
CPP 
预编译器的名称,默认值为  $(CC) -E 
CPPFLAGS 
预编译的选项。  
CXX 
C++ 
编译器的名称,默认值为  g++ 
CXXFLAGS 
C++ 
编译器的选项。  
FC 
FORTRAN 
编译器的名称,默认值为  f77 
FFLAGS 
FORTRAN 
编译器的选项。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值