没有合适的资源?快使用搜索试试~ 我知道了~
GUN make 中文手册
试读
199页
需积分: 0 1 下载量 183 浏览量
更新于2016-09-12
收藏 1.34MB PDF 举报
### GUN make 中文手册知识点概览
#### 第一章:概述
- **GNU Make简介**:GNU Make是一款强大的自动化构建工具,广泛应用于软件工程领域,用于自动化编译过程及项目构建管理。
- **准备知识**:理解基本的Unix/Linux操作系统概念、熟悉shell脚本编写以及了解基本的文件系统结构。
#### 第二章:GNU Make介绍
- **Makefile简介**:
- Makefile是GNU Make的工作脚本,其中定义了如何构建项目的目标文件。
- Makefile由一系列规则组成,每个规则定义了一个目标(通常是文件名),该目标依赖于一组其他文件,并且定义了一系列命令来更新这些文件。
- **Makefile规则介绍**:
- 规则格式:`target : prerequisites\n\tcommand`
- `target`:要构建的目标文件。
- `prerequisites`:构建目标所需的前置文件。
- `command`:用于构建目标的具体指令。
- **简单的示例**:通过一个简单的Makefile示例展示如何定义目标、依赖和命令。
- **make如何工作**:
- make读取Makefile中的规则,确定哪些文件需要更新,并执行相应的命令。
- make会检查文件的时间戳,仅当目标文件比其依赖文件旧时才重新构建。
- **指定变量**:
- 变量用于存储字符串值,可以在Makefile中多次引用。
- 示例:`CC = gcc`,这里`CC`变量被定义为`gcc`。
- **自动推导规则**:
- make支持自动推导规则,即根据文件扩展名自动生成构建规则。
- 例如,`.c.o`规则可以将C源文件编译成对象文件。
- **另类风格的makefile**:介绍不同风格的Makefile编写方式,如使用脚本语言动态生成Makefile等。
- **清除工作目录过程文件**:介绍如何编写规则来清理中间文件或临时文件,保持工作目录的整洁。
#### 第三章:Makefile总述
- **Makefile的内容**:详细介绍Makefile文件中可能包含的各种元素,如变量定义、规则声明等。
- **makefile文件的命名**:
- 通常名为`Makefile`或`makefile`。
- make默认查找这两个文件名之一。
- **包含其它makefile文件**:
- 使用`include`指令可以引入其他Makefile文件。
- 便于组织大型项目的构建逻辑。
- **变量MAKEFILES**:存储包含的Makefile文件列表。
- **变量MAKEFILE_LIST**:存储当前Makefile及其所有被包含文件的完整路径列表。
- **其他特殊变量**:介绍make提供的一些特殊变量,如`$@`代表目标文件名称等。
- **makefile文件的重建**:当Makefile文件本身发生改变时,make会重新读取并解析它。
- **重载另外一个makefile**:介绍如何在不重启make进程的情况下加载新的Makefile文件。
- **make如何解析makefile文件**:
- 变量取值:如何引用和解析变量。
- 条件语句:使用条件结构来控制Makefile的执行流程。
- 规则的定义:如何定义规则及其依赖关系。
#### 第四章:Makefile的规则
- **规则语法**:深入探讨Makefile中规则的详细语法。
- **依赖的类型**:解释不同类型的依赖关系及其应用场景。
- **文件名使用通配符**:
- 介绍如何利用通配符来匹配多个文件名。
- 讨论通配符使用时的常见问题及解决方法。
- **目录搜寻**:
- 介绍如何配置make来搜索指定目录下的文件。
- 包括一般搜索、选择性搜索以及搜索机制的细节。
- **Makefile伪目标**:介绍如何定义和使用伪目标来执行非文件构建相关的任务。
- **强制目标**:介绍如何创建没有依赖项或命令的目标,常用于触发特定行为。
#### 第五章:规则的命令
- **命令回显**:解释如何显示命令而不是直接执行。
- **命令的执行**:讨论命令执行的细节,包括如何处理命令中的特殊字符等。
- **并发执行命令**:介绍如何配置make以并行执行命令。
- **命令执行的错误**:探讨命令执行失败时的处理策略。
- **中断make的执行**:介绍如何在执行过程中终止make进程。
- **make的递归执行**:
- 使用make命令从Makefile内部调用另一个make进程。
- 探讨递归调用的优点与缺点。
- **定义命令包**:介绍如何将多个命令打包为一个单元进行管理。
- **空命令**:有时可能需要定义一个规则但不执行任何命令。
#### 第六章:Makefile中的变量
- **变量的引用**:讲解如何在Makefile中引用已定义的变量。
- **两种变量定义**:
- 递归展开式变量:变量在使用时才会被解析。
- 直接展开式变量:变量定义时立即展开。
- **变量的高级用法**:
- 替换引用:在引用变量时替换其中的部分文本。
- 套嵌引用:在一个变量的定义中引用另一个变量。
- **变量取值**:探讨如何获取变量的实际值。
- **如何设置变量**:介绍不同的方法来设置变量,包括在命令行上设置变量。
- **追加变量值**:如何向现有变量添加新值。
- **override指示符**:用于覆盖已定义的变量值。
- **多行定义**:如何定义跨多行的变量。
- **系统环境变量**:如何在Makefile中使用系统环境变量。
- **目标指定变量**:针对特定目标定义的变量。
- **模式指定变量**:根据文件名模式来指定变量值。
#### 第七章:Makefile的条件执行
- **条件判断的基本语法**:介绍如何在Makefile中使用条件结构来控制代码的执行流程。
- **标记测试的条件语句**:探讨如何使用标记测试来进行条件判断。
#### 第八章:make的内嵌函数
- **函数的调用语法**:讲解make提供的各种内置函数及其使用方法。
- **文本处理函数**:
- 如`subst`用于替换字符串,`patsubst`用于模式替换等。
- 其他文本处理函数还包括排序、筛选等功能。
以上内容仅为《GNU Make中文手册》的一部分摘要,涵盖了从基础到高级的主题,旨在帮助读者全面掌握GNU Make的使用技巧,从而更高效地管理和构建软件项目。
GNU make中文手册
ver - 3.8
翻译整理:徐海兵
2004-09-11
GNU make
中文手册
目 录Table of Contents
GNU make中文手册..................................................................................................................... 1
ver - 3.8 ....................................................................................................................................... 1
第一章:概述 ............................................................................................................................... 7
1.1 概述 ................................................................................................................................. 7
1.2 准备知识 .......................................................................................................................... 8
第二章 GNU make 介绍 ............................................................................................................. 9
2 GNU make 介绍.................................................................................................................... 9
2.1 Makefile简介 .................................................................................................................. 10
2.2 Makefile规则介绍........................................................................................................... 11
2.3 简单的示例..................................................................................................................... 12
2.4 make如何工作 ............................................................................................................... 13
2.5 指定变量 ........................................................................................................................ 15
2.6 自动推导规则 ................................................................................................................. 16
2.7 另类风格的makefile ....................................................................................................... 17
2.8 清除工作目录过程文件................................................................................................... 18
第三章:Makefile 总述 .............................................................................................................. 20
3 Makefile总述........................................................................................................................ 20
3.1 Makefile的内容............................................................................................................... 20
3.2 makefile文件的命名 ....................................................................................................... 21
3.3 包含其它makefile文件.................................................................................................... 22
3.4 变量 MAKEFILES.......................................................................................................... 24
3.5 变量 MAKEFILE_LIST.................................................................................................. 26
3.6 其他特殊变量 ................................................................................................................. 26
3.7 makefile文件的重建 ....................................................................................................... 27
3.8 重载另外一个makefile.................................................................................................... 28
3.9 make如何解析makefile文件 ........................................................................................... 30
3.9.1 变量取值 .................................................................................................................. 30
3.9.2 条件语句 .................................................................................................................. 31
3.9.3 规则的定义............................................................................................................... 31
3.10 总结 ............................................................................................................................... 31
第四章:Makefile的规则 ............................................................................................................ 33
4 Makefile规则........................................................................................................................ 33
4.1 一个例子 ........................................................................................................................ 33
4.2 规则语法 ........................................................................................................................ 34
4.3 依赖的类型..................................................................................................................... 35
4.4 文件名使用通配符.......................................................................................................... 36
4.4.1 统配符使用举例........................................................................................................ 37
4.4.2 通配符存在的缺陷 .................................................................................................... 38
4.4.3 函数wildcard ............................................................................................................ 38
4.5 目录搜寻 ........................................................................................................................ 39
4.5.1 一般搜索(变量VPATH) ........................................................................................ 39
4.5.2 选择性搜索(关键字vpath) .................................................................................... 40
4.5.3 目录搜索的机制........................................................................................................ 41
4.5.4 命令行和搜索目录 .................................................................................................... 44
4.5.5 隐含规则和搜索目录................................................................................................. 44
4.5.6 库文件和搜索目录 .................................................................................................... 45
2004年9月11日
2
GNU make
中文手册
4.6 Makefile伪目标............................................................................................................... 46
4.7 强制目标(没有命令或依赖的规则) ............................................................................. 50
4.8 空目标文件..................................................................................................................... 50
4.9 Makefile的特殊目标 ....................................................................................................... 51
4.10 多目标............................................................................................................................ 54
4.11 多规则目标..................................................................................................................... 55
4.12 静态模式 ........................................................................................................................ 56
4.12.1 静态模式规则的语法 ....................................................................................... 56
4.12.2 静态模式和隐含规则 ....................................................................................... 58
4.13 双冒号规则..................................................................................................................... 59
4.14 自动产生依赖 ................................................................................................................. 60
第五章:规则的命令 .................................................................................................................. 63
5 为规则书写命令 ................................................................................................................... 63
5.1 命令回显 ........................................................................................................................ 63
5.2 命令的执行..................................................................................................................... 64
5.3 并发执行命令 ................................................................................................................. 65
5.4 命令执行的错误.............................................................................................................. 67
5.5 中断make的执行............................................................................................................ 68
5.6 make的递归执行............................................................................................................ 69
5.6.1 变量MAKE ............................................................................................................... 70
5.6.2 变量和递归............................................................................................................... 71
5.6.3 命令行选项和递归 .................................................................................................... 75
5.6.4 -w选项...................................................................................................................... 77
5.7 定义命令包..................................................................................................................... 78
5.8 空命令............................................................................................................................ 80
第六章:Makefile中的变量......................................................................................................... 81
6 使用变量 .............................................................................................................................. 81
6.1 变量的引用..................................................................................................................... 82
6.2 两种变量定义(赋值)................................................................................................... 83
6.2.1 递归展开式变量........................................................................................................ 83
6.2.2 直接展开式变量........................................................................................................ 85
6.2.3 定义一个空格 ........................................................................................................... 86
6.2.4 “?=”操作符 ............................................................................................................. 87
6.3 变量的高级用法.............................................................................................................. 88
6.3.1 变量的替换引用........................................................................................................ 88
6.3.2 变量的套嵌引用........................................................................................................ 88
6.4 变量取值 ........................................................................................................................ 92
6.5 如何设置变量 ................................................................................................................. 93
6.6 追加变量值..................................................................................................................... 94
6.7 override 指示符 ............................................................................................................. 96
6.8 多行定义 ........................................................................................................................ 98
6.9 系统环境变量 ................................................................................................................. 99
6.10 目标指定变量 ............................................................................................................... 101
6.11 模式指定变量 ............................................................................................................... 103
第七章:Makefile的条件执行 ................................................................................................... 104
7 Makefile的条件判断 ........................................................................................................... 104
7.1 一个例子 ...................................................................................................................... 104
7.2 条件判断的基本语法 .................................................................................................... 105
7.3 标记测试的条件语句 .................................................................................................... 108
第八章:make的内嵌函数........................................................................................................ 109
8 make的函数....................................................................................................................... 109
2004年9月11日
3
GNU make
中文手册
8.1 函数的调用语法............................................................................................................ 109
8.2 文本处理函数 ............................................................................................................... 110
8.2.1 $(subst FROM,TO,TEXT) ..................................................................................... 110
8.2.2 $(patsubst PATTERN,REPLACEMENT,TEXT) ................................................... 110
8.2.3 $(strip STRINT)..................................................................................................... 112
8.2.4 $(findstring FIND,IN)............................................................................................ 112
8.2.5 $(filter PATTERN…,TEXT) ................................................................................... 112
8.2.6 $(filter-out PATTERN...,TEXT)............................................................................. 113
8.2.7 $(sort LIST)........................................................................................................... 113
8.2.8 $(word N,TEXT) .................................................................................................... 114
8.2.9 $(wordlist S,E,TEXT)............................................................................................ 114
8.2.10 $(words TEXT) ............................................................................................ 114
8.2.11 $(firstword NAMES…) ................................................................................ 115
8.3 文件名处理函数............................................................................................................ 115
8.3.1 $(dir NAMES…) .................................................................................................... 115
8.3.2 $(notdir NAMES…)............................................................................................... 116
8.3.3 $(suffix NAMES…) ............................................................................................... 116
8.3.4 $(basename NAMES…) ....................................................................................... 117
8.3.5 $(addsuffix SUFFIX,NAMES…) ........................................................................... 117
8.3.6 $(addprefix PREFIX,NAMES…)........................................................................... 118
8.3.7 $(join LIST1,LIST2)............................................................................................... 118
8.3.8 $(wildcard PATTERN) .......................................................................................... 119
8.4 foreach 函数................................................................................................................ 119
8.5 if 函数.......................................................................................................................... 120
8.6 call函数 ........................................................................................................................ 121
8.7 value函数..................................................................................................................... 123
8.8 eval函数....................................................................................................................... 124
8.9 origin函数..................................................................................................................... 125
8.10 shell函数 ...................................................................................................................... 127
8.11 make的控制函数.......................................................................................................... 128
8.11.1 $(error TEXT…) ........................................................................................... 128
8.11.2 $(warning TEXT…)...................................................................................... 129
第九章:执行make .................................................................................................................. 130
9 执行make .......................................................................................................................... 130
9.1 指定makefile文件......................................................................................................... 130
9.2 指定终极目标 ............................................................................................................... 131
9.3 替代命令的执行............................................................................................................ 133
9.4 防止特定文件重建........................................................................................................ 135
9.5 替换变量定义 ............................................................................................................... 136
9.6 使用make进行编译测试 ............................................................................................... 137
9.7 Tmake的命令行选项 .................................................................................................... 138
第十章:make的隐含规则........................................................................................................ 143
10 使用隐含规则 ............................................................................................................... 143
10.1 隐含规则的使用............................................................................................................ 143
10.2 make的隐含规则一览................................................................................................... 145
10.3 隐含变量 ...................................................................................................................... 148
10.3.1 代表命令的变量 ............................................................................................ 149
10.3.2 命令参数的变量 ............................................................................................ 150
10.4 make隐含规则链.......................................................................................................... 151
10.5 模式规则 ...................................................................................................................... 153
10.5.1 模式规则介绍 ................................................................................................ 153
10.5.2 模式规则示例 ................................................................................................ 155
10.5.3 自动化变量.................................................................................................... 156
2004年9月11日
4
GNU make
中文手册
T10.5.4 T模式的匹配 ................................................................................................. 159
10.5.5 万用规则 ....................................................................................................... 160
10.5.6 重建内嵌隐含规则......................................................................................... 161
10.6 缺省规则 ...................................................................................................................... 162
10.7 后缀规则 ...................................................................................................................... 162
10.8 隐含规则搜索算法........................................................................................................ 164
第十一章:使用make更新静态库文件...................................................................................... 166
11 更新静态库文件............................................................................................................ 166
11.1 库成员作为目标............................................................................................................ 166
11.2 静态库的更新 ............................................................................................................... 167
11.2.1 更新静态库的符号索引表 .............................................................................. 168
11.3 make静态库的注意事项 ............................................................................................... 168
11.4 静态库的后缀规则........................................................................................................ 169
第十二章 : GNU make的特点............................................................................................... 170
12 GNU make的一些特点 ................................................................................................. 170
12.1 源自System v的特点 .................................................................................................... 170
12.2 源自其他版本的特点 .................................................................................................... 171
12.3 GNU make自身的特点 ................................................................................................. 172
第十三章 和其它版本的兼容 .................................................................................................... 174
13 不兼容性 ...................................................................................................................... 174
第十四章 Makefile的约定 ........................................................................................................ 176
14 书写约定 ...................................................................................................................... 176
14.1 基本的约定................................................................................................................... 176
14.2 规则命令行的约定........................................................................................................ 178
14.3 代表命令变量 ............................................................................................................... 179
14.4 安装目录变量 ............................................................................................................... 180
14.5 Makefile的标准目标名.................................................................................................. 185
14.6 安装命令分类 ............................................................................................................... 190
第十五章 make的常见错误信息............................................................................................... 193
15 make产生的错误信息................................................................................................... 193
附录1:关键字索引 .................................................................................................................. 196
GNU make可识别的指示符:.............................................................................................. 196
GNU make函数: ............................................................................................................... 197
GNU make的自动化变量..................................................................................................... 197
GNU make环境变量............................................................................................................ 198
后序 ......................................................................................................................................... 198
2004年9月11日
5
剩余198页未读,继续阅读
资源推荐
资源评论
126 浏览量
2018-03-08 上传
2010-04-09 上传
2011-05-12 上传
2008-11-27 上传
121 浏览量
2019-04-18 上传
5星 · 资源好评率100%
2021-09-30 上传
5星 · 资源好评率100%
111 浏览量
2017-05-21 上传
5星 · 资源好评率100%
112 浏览量
5星 · 资源好评率100%
2021-01-15 上传
2009-06-05 上传
2022-08-04 上传
2020-03-10 上传
资源评论
fengyin_12
- 粉丝: 13
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 東耳篮球馆会员信息管理系统(编号:98721117).zip
- 房屋系统(编号:45266146).zip
- 大学生志愿者信息管理系统(编号:96654262).zip
- 房屋租赁系统(编号:49930163).zip
- 付费自习室管理系统(编号:46724236)(1).zip
- 学术论文撰写技巧:施一公提高英文论文写作能力的六点建议
- 科研真问题从何而来-中科院院士分享
- 通过matlab语言读取csv文件.zip
- 通过Django实现用户注册和登录的简单认证系统.zip
- 通过汇编语言计算两个整数和,将结果存储在另一个变量中.zip
- Aruba%20Instant%20On_2.3.0_apk-dl.com.apk.1.1
- Ruby参考手册中文CHM版最新版本
- RubyonRails字符串处理中文最新版本
- 基于 selenium 模拟微博登录爬虫资料齐全+详细文档+源码.zip
- 基于chromeDriver+selenium蓝桥杯题库爬虫资料齐全+详细文档+源码.zip
- 基于java+selenium爬虫资料齐全+详细文档+源码.zip
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功