场景1:其中一个文件调用的函数在另外一个.c文件
cc:=gcc
out:=main
objs:=main.o multi.o
$(out): $(objs)
$(cc) $^ -o $@
%.o:%.c
$(cc) -c $^ -o $@
clean:
$(RM) $(objs) $(out)
rebuild:clean main
场景2:当前目录下,每个名为name.c的源代码文件,都生成一个名为name的可执行文件
sf:=$(wildcard *.c)
list:=$(patsubst %.c,%,$(sf))
cc:=gcc
all:
for i in $(list); do $(cc) -c $$i.c -o $$i.o; done
.PHONY:clean rebuild
clean:
$(RM) $(list)
rebuild:clean all