GNU make隐含规则链:MapGIS10教程解析
需积分: 44 140 浏览量
更新于2024-08-10
收藏 2.1MB PDF 举报
"这篇教程是关于`make`工具的,特别是`Makefile`中的隐含规则链的概念。在`make`中,一个目标文件可能需要通过一系列隐含规则才能生成,比如从源文件`N.y`经过`yacc`生成`N.c`,再由编译器将`N.c`编译成`N.o`。这种一系列的规则被称为一个“链”。教程还提到了`make`处理这类情况的两种情况:如果`N.c`已经存在或者在`Makefile`中被明确提及,`make`会直接用`N.c`生成`N.o`,而无需进一步搜索其他规则。文档来自于GNUmake中文手册,版本3.8,日期为2004年9月11日。"
在`make`工具中,`Makefile`是非常关键的部分,它定义了构建项目时的规则和步骤。`Makefile`规则通常包含目标(target)、依赖(dependency)和命令(command)。隐含规则是预定义的规则,比如编译C程序时,`make`知道`.c`文件需要先经过编译器转换为`.o`目标文件。当一个目标文件的生成需要多个步骤,如上面提到的`yacc`和编译过程,这些步骤就形成了一个隐含规则链。
隐含规则链的处理方式是:`make`首先检查目标的直接依赖项,如果这些依赖项存在并且满足条件(例如,它们是最新的或者在`Makefile`中被明确指定),`make`就会按照规则链依次执行对应的命令。在上述例子中,如果`N.c`已经存在,`make`会跳过生成`N.c`的步骤,直接使用`N.c`来创建`N.o`。
`make`的工作原理是根据`Makefile`中的规则和依赖关系来决定哪些目标需要更新。它会比较目标文件和其依赖文件的修改时间,如果目标比依赖旧,或者目标不存在,`make`就会执行相应的命令来更新目标。
`Makefile`的编写涉及到许多细节,如变量的设定、自动推导规则、目录搜索、通配符的使用、伪目标和静态模式规则等。变量允许用户定义可重用的值,自动推导规则则可以简化`Makefile`的编写,例如`make`会自动推导出从`.c`到`.o`的编译规则。目录搜索允许在多个路径中查找依赖文件,而通配符可以帮助处理一组相似的文件名。伪目标如`.PHONY`用于标记那些实际上并非物理文件的目标,确保`make`总是执行对应的命令。静态模式规则是一种更灵活的规则形式,可以匹配多个文件并定义它们的构建规则。
`make隐含规则链`是`make`工具高效构建复杂项目的关键特性,它允许用户利用预定义的规则组合来自动化构建过程,极大地提高了开发效率。学习和理解`Makefile`的规则和隐含规则链对于任何需要自动化构建过程的项目都至关重要。
2011-10-20 上传
2020-02-26 上传
2012-09-25 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
Davider_Wu
- 粉丝: 45
- 资源: 3910
最新资源
- AA4MM开源软件:多建模与模拟耦合工具介绍
- Swagger实时生成器的探索与应用
- Swagger UI:Trunkit API 文档生成与交互指南
- 粉红色留言表单网页模板,简洁美观的HTML模板下载
- OWIN中间件集成BioID OAuth 2.0客户端指南
- 响应式黑色博客CSS模板及前端源码介绍
- Eclipse下使用AVR Dragon调试Arduino Uno ATmega328P项目
- UrlPerf-开源:简明性能测试器
- ConEmuPack 190623:Windows下的Linux Terminator式分屏工具
- 安卓系统工具:易语言开发的卸载预装软件工具更新
- Node.js 示例库:概念证明、测试与演示
- Wi-Fi红外发射器:NodeMCU版Alexa控制与实时反馈
- 易语言实现高效大文件字符串替换方法
- MATLAB光学仿真分析:波的干涉现象深入研究
- stdError中间件:简化服务器错误处理的工具
- Ruby环境下的Dynamiq客户端使用指南