二. Makefile规则的一些等效写法

1. 多目标的等效写法

一个规则中有多个目标,可以将其等效为多个目标不同,但依赖命令相同的规则。make会找到Makefile中的第一个目标作为最终目标,如下两种写法等效,target1最终目标

  • 写法1
target1 target2 : prerequisites1
	command1
	command2
  • 写法2
target1 : prerequisites1
	command1
	command2
target2 : prerequisites1
	command1
	command2

2. 多依赖的等效写法

一个规则中有多个依赖,可以将其等效为多个依赖不同,但目标命令相同的规则。make会首先解释target1 : prerequisites1 完成后在解释 target1 : prerequisites1

  • 写法1
target1 : prerequisites1 prerequisites2
	command1
	command2
  • 写法2
target1 : prerequisites1
	command1
	command2
target1 : prerequisites2
	command1
	command2

3.多目标且多依赖的等效写法

举一反三。。。。

  • 写法1
target1 target2 : prerequisites1 prerequisites2
	command1
	command2
  • 写法2
target1 : prerequisites1
	command1
	command2
target1 : prerequisites2
	command1
	command2
target2 : prerequisites1
	command1
	command2
target2 : prerequisites2
	command1
	command2

4. 同名目标的等效写法

Makefile中同名的目标即可看做是同一个目标。与多依赖的的写法正好相反。

  • 写法1
target1 : prerequisites1
	command1
	command2
target1 : prerequisites2
	command1
	command2
  • 写法2
target1 : prerequisites1 prerequisites2
	command1
	command2

5. 理解和总结

make的设计中,目标依赖对应的都是文件,通过比对目标文件依赖文件时间戳/是否存在 决定是否执行命令,所以无论是多目标还是多依赖的写法,都可以写成单目标单依赖,反之也成立。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值