makefile复习笔记4

  1. 隐含规则:约定俗成,不用写出。
  2. foo.o:foo.c foo.h这类规则可以不写,隐含规则会自动推到并调用;如果不想使用隐含规则,就自己写出;每一条隐含规则都在库中有其顺序。
  3. 隐含规则对于不同语言类似,主要熟悉C/C++的默认推导规则。
  4. 隐含规则中会使用的常用变量:AR,CC,CPP, CXX, RM, CFLAGS,ARFLAGS,CXXFLAGS.
  5. 隐含规则链:生成的中间文件会被rm -f掉,可以设置伪目标不让其删除。
  6. 模式规则:%
  7. 自动化变量:$@,$^,$%,$?,$*,$<,$+,$(@D),$(@F)...
  8. 后缀规则:eg:.c.o:等价于.o:.c; 使用伪目标".SUFFIXES"来定义或是删除后缀规则。
  9. 函数库文件:foolib(hack.o hac.o he*.o);    foolib(hack.o):hack.o;ar cr foolib hack.o
  10. 使用"make foo.a(bar.o)"的形式调用Makefile时,隐含规则会去找"bar.o"的规则,如果没有定义bar.o的规则,那么内建隐含规则生效,make会去找bar.c文件来生成bar.o;注意自动化变量$%的使用;
  11. 使用后缀规则和隐含规则来生成函数库文件:.c.o:
  12. 使用函数库文件时尽量不要用“-j”参数,可能会损坏库文件
posted @ 2012-03-21 13:17  flyfisher  阅读(112)  评论(0)    收藏  举报