make的规则

make允许的规则

 

1. 具体规则

 

2. 模式规则

用通配符而不是明确的文件名,主文件名会被表示成%,且只能出现一次。

 

如:

%.o: %.c

    $(COMPILE.c) $(OUTPUT_OPTION) $<

 

 

3. 后缀规则

 

后缀规则中的工作目标,可以使一个扩展名或两个被衔接在一起的扩展名

.c.o:

     $(COMPILE.c) $(OUTPUT_OPTION) $<

 

这个规则和上面的模式规则效果一样。

 

上面是双后缀规则,还有单后缀规则。

只需之处源文件的扩展名

.p:

      $(LINK.p) $^ $(LOADLIBS) $(LDLIBS) -o $@

 

这个规则等效于:

%: %.p

      $(LINK.p) $^ $(LOADLIBS) $(LDLIBS) -o $@

 

注意: make只会在扩展名在已知扩展名列表中时,才会视之为后缀规则。

可以定义.SUFFIXS变量来增加已知的扩展名列表。

 

 

4. 静态模式规则

像正规模式规则,值不过它们只能应用在一串特定的工作目标文件中。

 

如:

$(OBJECTS): %.o: %.c

      $(CC) -c $(CFLAGS) $< -o $@

 

这个规则和模式规则唯一差别是开头的$(OBJECTS): 。 这表明,该规则只能应用在$(OBJECTS)变量中所列举的文件上。

 

 

还有一种叫隐含规则,其实应该就是make内置的规则。一般由模式规则和后缀规则来表示。

可以这样来删除指定的内置规则

%.o: %.l

%.c: %.l

一个没有指定命令脚本的模式规则将删除相应的规则。

 

 

5.还有一种是双冒号规则

通常我们看到的都是单冒号的规则,这样make看到相同的工作目标,会把必要条件都加到这个工作目标中,形成一个关系依存图。

 

但是如果看到双冒号规则,就不一样了。它会依据必要条件的时间戳,是否在工作目标时间戳之后,以不同的命令来更新同一个工作目标。

 

听上去很牛,没有试过。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值