Makefile拾遗

makefile中存在一个唯一的终极目标,通常是生成特定文件。它会检查文件是否存在,若无更新则不执行命令。伪目标用于确保执行,不受文件存在与否影响。依赖文件按顺序检查,若更新则触发规则。依赖树采用深度优先遍历,多个规则时最后的规则响应变化。include指令用于查找并展开目标规则。

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

规则
目标:依赖

[tab]命今

makefile有且仅有一个终极目标,生成一个终极文件。

make总是认为目标是文件,如果文件存在且没有依赖则立即返回,不会执行命令。

所以需要定义伪目标,因为伪目标不与文件绑定,不管同名文件存不存在都执行除非指定目标,

否则会寻找makefile第一个目标,即文件最前面的目标优先寻找明确的目标规则,找不到才使用通配符目标规则,无论通配符规则目标在文件位置。

依赖也是目标,从左到右进行检查。

如果依赖的文件时间戳晚于目标的文件时间戳,表示依赖文件有更新,触发规则。

深度优先遍历依赖树,同一个目标,多个规则,任意规则依赖变更会且仅会触发最后一个规则。

include,找makefile里面有没有目标规则,如果有且目标需要更新,则展开更新然后再展开如果没有目标规则,直接展开。如果没有此文件,报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值