网上不乏Makefile的入门文章,但是Makefile博大精深,也不是一朝一日就能学完的,因项目需要,做了一个简单的Demo,如下!
CFLAGS = -g
INCLUDES = -I../header
SRC = \
Main.c
OBJ = $(SRC:%.c=Obj/%.obj)
CGI = $(SRC:%.c=Bin/%.o)
.SUFFIXES: .obj
all: $(CGI)
$(CGI): $(OBJ)
$(CC) $(CFLAGS) $(INCLUDES) -o $*.o $<
$(OBJ): $(SRC)
$(CC) -c $(CFLAGS) $(INCLUDES) -o $*.obj $<
clean:
rm Obj/*
一切尽在不言中,$*, $<的作用还是做一下简单的介绍吧!
$*:模式及是之前的部分。Demo中,代表$(CGI)中的模式(%)
$<:自动化变量,所有的依赖目标集。Demo中,代表$(OBJ)中$(SRC:%.c=Obj/%.obj)的“=”后面的一段