make 有自动推导功能,所以我们在写 makefile 时能省下不少麻烦,请看例子 test004.mk。
除了 makefile 文件不一样,test004 与 test003 的其它文件是一样的。
#执行方式:
#make -f test004.mk
#################################################################
#说明:
#1.只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,
# 如果make找到一个whatever.o,那么whatever.c,就会是whatever.o的
# 依赖文件.并且 cc -c whatever.c 也会被推导出来.
#################################################################
OBJ = main.o math.o
test.exe : $(OBJ)
cc -o test.exe ${OBJ}
#不使用自动推导的写法
math.o : math.c math.h common.h
cc -c math.c
#使用自动推导,因为由 main.o 可以推导出 main.c,并且可以推导出命令
#cc -c main.c,所以最后省略的就是
main.o :main.h math.h common.h
.PHONY : clean
clean:
-rm test.exe $(OBJ)
请从 http://u.115.com/file/f46e57216f 下载这个例子