函数库成员的隐含规则

当make搜索一个目标的隐含规则时,一个特殊的特性是,如果这个目标是 a(m) 形式的,其会把目标变成 (m) 。于是,如果我们的成员是 %.o 的模式定义,并且如果我们使用 make foo.a(bar.o) 的形式调用Makefile时,隐含规则会去找 bar.o 的规则,如果没有定义 bar.o 的规则,那么内建隐含规则生效,make会去找 bar.c文件来生成 bar.o ,如果找得到的话,make执行的命令大致如下:

  1. cc -c bar.c -o bar.o
  2. ar r foo.a bar.o
  3. rm -f bar.o

还有一个变量要注意的是 $% ,这是专属函数库文件的自动化变量,有关其说明请参见“自动化变量”一节。