1. 基础makefile
编译func1.c,func2.c,func.h
final: func1.o func2.o
gcc –o final func1.o func2.o
func1.o: func1.c func.h
gcc –c func1.c
func2.o: func2.c func.h
gcc –c func2.c
2. $@、$^、$<特殊符号引入
final: func1.o func2.o
//$@目标文件,即final;$^所有依赖文件,即func1.o、func2.o
gcc –o $@ $^
func1.o: func1.c func.h
//$<第一份依赖文件,即func1.c
gcc –c $<
func2.o: func2.c func.h
gxx –c $<
3. .c.o缺省规则
final: func1.o func2.o
gcc –o $@ $^
//缺省规则:.c.o代表所有.o文件对应相应的.c文件
.c.o:
gcc –c $<
4. clean
final: func1.o func2.o
gcc –o $@ $^
.c.o:
gcc –c $<
.PHONY:clean
clean:
#移除所有.o文件
-rm *.o