1. 关于 Makefile中 =, .=, ?=的区别
= 最基本的赋值
:= 覆盖之前的值
?= 如果没有被赋值过就赋予等号后面的值
+= 添加等号后面的值
2. patsubst -- pattern substitute
局部替换
例如 patsubst %.c, %.o, hello.c
该方法输出hello.o
3. wildcard
通配符
例如wildcard *.c 即为匹配当前目录下所有的.c文件并输出名称.
4. 简单Makefile例子:
CC=gcc
CFLAGS=-g -Wall
LDFLAGS=-pthread
target=binfile
objs=$(patsubst %.c, %.o, $(wildcard *.c))
all:$(target)
$(target):$(objs)
› $(CC) $^ -o $@ $(LDFLAGS)
.c.o:
› $(CC) -c $< $(CFLAGS)
.PHONY:
› clean
clean:
› rm *.o $(target) -rf
2019.08.12