makefile双冒号规则理解

本文深入解析Makefile中的双冒号规则,探讨其独立性、执行顺序及应用场景,适用于高级Makefile使用者理解复杂构建逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

makefile双冒号规则理解


在网上找关于双冒号规则的理解, 答案基本上都是相同的, 看得迷迷糊糊, 直接找到英文重新翻译和整理一下:

一个目标可以出现在多个规则中, 但要求所有的规则必须是同一类型: 要么都是普通规则, 要么是双冒号规则. 双冒号规则与单冒号规则是两种明显不同的规则.

双冒号规则的主要特征 - - 同目标/多规则/彼此独立:
如果这些相同目标的规则是双冒号的, 则其中任意一条规则相对于另外的同目标规则是独立的:
1. 当一条规则中的目标比该规则中的任何一个依赖旧时, 该规则中的方法就会被执行, 但仅仅限于该规则.
2. 如果该规则中的目标没有依赖, 不管目标存在与否, 该规则的方法总是会被执行, 但也仅仅限于该条规则.
同目标的双冒号规则彼此之间相互独立, 每一条规则都分开处理, 就像不同目标不同规则被执行一样.
这种机制, 能够让相同目标的双冒号规则集合中的任何一条方法执行, 或所有方法都执行, 或所有方法都不执行.

其他注意事项:
1. 双冒号规则会按照他们在makefile中出现的顺序来执行, 然而在实际使用中双冒号规则都用在处理顺序无关的的场合.
2. 每一个双冒号规则都要带一个方法, 如果不带的话, 将使用隐含规则.
3. 模式规则带有双冒号时, 将匹配任何满足模式的目标.

双冒号规则解决的问题:
双冒号规则有点晦涩难懂, 也不常用, 主要用在根据不同的依赖条件来使用不同的方法处理同一个目标.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值