- //makefile自动推导规则
- //另辟蹊径,makefile中,依赖关系可能会需要包含一系列的头文件,如果我们的Time.cpp中
- 有#include "Time.h",那么依赖关系应该是Time.o:Time.cpp Time.h,有时文件中引入的
- 头文件过多或者文件过多以至于我们经常混淆或者忘记头文件。针对这种情况我们采用C/C++编译
- 器的-MM选项解决之,既简洁又清晰。 下面是采用了C/C++编译器的-MM选项的makefile
- testTime:testTime.o Time.o
- g++ testTime.o Time.o -o testTime
- gcc -MM testTime.cpp
- gcc -MM Time.cpp
- .PHONY:clean
- clean:
- -rm -f %.o testTime
- 这个是没有采用C/C++编译器的-MM选项的makefile
- testTime:testTime.o Time.o
- g++ testTime.o Time.o -o testTime
- testTime.o:Time.h
- Time.o:Time.h
- .PHONY:clean
- clean:
- -rm -f %.o testTime
- 上面的两个都采用了makefile的自动推导规则。
- 如果不采用自动推导规则,makefile如下
- testTime:testTime.o Time.o
- g++ testTime.o Time.o -o testTime
- testTime.o:testTime.cpp Time.h
- g++ -c testTime.cpp
- Time.o:Time.cpp Time.h
- g++ -c Time.cpp
- .PHONY:clean
- clean:
- -rm -f %.o testTime