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 
C 编译器的名称,默认值为  cc。  
CFLAGS 
C 编译器的选项。  
CPP 
C 预编译器的名称,默认值为  $(CC) -E。  
CPPFLAGS 
C 预编译的选项。  
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、付费专栏及课程。

余额充值