1. //makefile自动推导规则 
  2. //另辟蹊径,makefile中,依赖关系可能会需要包含一系列的头文件,如果我们的Time.cpp中
  3. 有#include "Time.h",那么依赖关系应该是Time.o:Time.cpp Time.h,有时文件中引入的
  4. 头文件过多或者文件过多以至于我们经常混淆或者忘记头文件。针对这种情况我们采用C/C++编译
  5. 器的-MM选项解决之,既简洁又清晰。 下面是采用了C/C++编译器的-MM选项的makefile 
  6.  
  7. testTime:testTime.o Time.o 
  8.         g++ testTime.o Time.o -o testTime 
  9.         gcc -MM testTime.cpp 
  10.         gcc -MM Time.cpp 
  11. .PHONY:clean 
  12. clean: 
  13.         -rm -f %.o testTime 
  14.  
  15. 这个是没有采用C/C++编译器的-MM选项的makefile 
  16. testTime:testTime.o Time.o 
  17.         g++ testTime.o Time.o -o testTime 
  18. testTime.o:Time.h 
  19. Time.o:Time.h 
  20. .PHONY:clean 
  21. clean: 
  22.         -rm -f %.o testTime 
  23.  
  24. 上面的两个都采用了makefile的自动推导规则。 
  25. 如果不采用自动推导规则,makefile如下 
  26. testTime:testTime.o Time.o 
  27.         g++ testTime.o Time.o -o testTime 
  28. testTime.o:testTime.cpp Time.h 
  29.         g++ -c testTime.cpp 
  30. Time.o:Time.cpp Time.h 
  31.         g++ -c Time.cpp 
  32. .PHONY:clean 
  33. clean: 
  34.         -rm -f %.o testTime