Makefile 变量
Makefile 中自定义变量,方式一 递归方式,方式二 直接方式
递归方式: VAR = xxx
直接方式: VAR := xxx
递归方式不能在变量中追加内容,比如 CFLAGS=$(CFLAGS) - o ,如果使用递归变量,则会造成无穷循环递归。所以,使用直接方式定义变量。
Makefile 中常见的预定义变量:
AR 库文件维护程序的名称,默认为 ar
AS 汇编程序的名称,默认为 as
CC C编译器的名称,默认为 cc
CXX c++ 编译器的名称,默认为g++
RM 文件删除程序的名称,默认为 rm -f
ARFLAGS 库文件维护程序的选项,无默认值
ASFLAGS 汇编程序的选项,无默认值
CFLAGS C编译器的选项,无默认值
CXXFLAGS C++编译器的选项,无默认值
Makefile中常见的自动变量
$* 不包含扩展名的目标文件名称
$+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件
$< 第一个依赖文件的名称
$? 所有时间戳比目标文件晚的依赖文件,并以空格分开
$@ 目标文件的完整名称
$^ 所有不重复的依赖文件,以空格分开
$%如果目标是归档成员,则该变量表示目标的归档成员名称
makefile命令的格式
目标: 依赖项
(tab空)由依赖项生成目标的指令,如 gcc -c target.o depedence.c
变量的 使用:
$(VAR)