1.Makefile要素
执行make时会自动根据 依赖项 使用 规则 生成 目标,也可通过 make + 目标名指定需要生成的目标。
目标:依赖
规则
例:
src := $(wildcard ./src/*.c)
obj := $(patsubst ./bin/%.o, %.c, $(src))
target:$(obj)
gcc $(CFLAGS) $(LDFLAGS) $^ -o $@
%.o:%.c
gcc -c $(CPPFLAGS) $< -o $@
.PHONY:clean
clean:
-rm $(target) $(obj) -f
2.自动变量
$< *规则*中的第一个依赖
$^ *规则*中所有的依赖
$@ *规则*中的目标
3.Makefile中的默认变量名
CC 用于指定编译器
CPPFLAGS 预编译标志如头文件路径 -I + PATH
CFLAGS 编译参数 -g ,-o等
LDFLAGS 链接标志如动态库静态库路径指定 -L + PATH -lname
4.Makefile中的函数
wildcard 匹配所有指定路径中指定后缀的文件
patsubst 匹配替换第三个参数中的文件名为指定后缀