当前位置:网站首页>makefile——rule概览
makefile——rule概览
2022-08-02 14:16:00 【China_JerryYuan】
1.makefile 的组成及作用
makefile由一组rule(规则)组成,规则的语法如下:
obj1 obj2 objN: prerequisite1 prerequisite2 prerequisite3 prerequisiteN
(tab) commands
一个规则由三部分组成
- obj 即目标部分。
- 必要条件部分(或者说依赖,即生成目标文件的依赖文件)。
- commands 从必要条件生成obj 需要执行的 命令。
这一组规则会生成一个叫dependency graph 的东西,可以翻译成依存图、依赖链。make 的最终任务就是根据makefie 文件中的规则,来生成这个dependency graph。dependency graph 决定make 是否要更新特定的目标,如果需要则需要执行相应的commands。
2.rule 的分类
- explicit rule
- implicit rule
- suffix rule
- static pattern rule
- pattern rule
可以将make 的rule 分为 explicit rule 和 implicit rule两类。 即具体规则和隐含规则。所谓具体规则,就是讲讲rule 明明白白的写出来,不需要任何的扩展之类的操作。而所谓的隐含规则,则是指,这个规则是没有明确写出来的,但是make在执行的时候,可能会将这个rule 进行扩展,或者make可能会执行你压根没写的rule。这些蕴含的rule可能包含一下几类。
2.1 explicit rule
具体规则由一个特性,就是:不必 all at once。它是指一条规则中,无需将所有的依赖都完全写出来,而是可以分多次。最终生成的依存图是一样的。这个特性的好处是可以增加makefile 的可读性。
2.1 pattern rule
即所谓的模式规则,就是说为了简化makefile 的书写,以及让makefile 的适应性更好(比如增加了文件却不用修改makefile),模式规则使用了一些通配符而不是明确的文件的名字。
2.2 suffix rule
这是指内置于make中的rule。这些rule不需要明确的写出来,但是在make解读makefile文件时却会执行的rule。
2.3 static pattern rule
它和一般的模式规则类似,只是这个规则只应用在一组特定指出的obj上。
边栏推荐
- 你的站点可能还没有准备好用于Site KitSite Kit 无法访问 WordPress REST API。请确保其已在您的站点上启用。
- Mediasoup 杂谈(待完善)
- 网络运维系列:二级域名启用与配置
- Oauth2.0 security (take WeChat authorized login as an example)
- 三大特殊类(String Object 包装类)与异常
- 记一次 ThreadLocal 泄漏导致的 shardingsphere-jdbc-core 单元测试偶发失败的排查与修复
- Mysql理解MVCC与BufferPool缓存机制
- smart rtmpd web 接口说明
- Priority table and Ascll table
- LAMP 环境搭建 yum源安装方式 (Apache 2.4.6 +mysql 8.0.28+php 8.1.3)
猜你喜欢
随机推荐
Oauth2.0 补充
Feign Client 超时时间配置不生效
Apache ShardingSphere 5.1.1 正式发布
Mysql索引优化二
抽象队列同步器AQS应用Lock详解
怎么使用 smart_rtmpd 的纯 webrtc 功能?
排序方法汇总(C语言)
网络运维系列:网络出口IP地址查询
网络运维系列:远程服务器登录、配置与管理
Oauth2.0 authentication server adds verification code login method
H3C 交换机配置端口组、DHCP、DHCP中继、管理用户
How to tick the word box?
screen 不间断会话服务
【线程安全】用户级,内核级,组合级线程|线程同步的处理(条件变量)|strtok_r(可冲入函数)
Xshell 使用删除键乱码问题
[Inter-process communication]: pipe communication/named/unnamed
小知识点系列-基于H2数据库单元测试
一分钟之内搭建自己的直播服务器?
Mediasoup 杂谈(待完善)
【个人向】线性表复习