Makefile 编写指南
需积分: 9 125 浏览量
更新于2024-07-21
1
收藏 878KB PDF 举报
"跟我一起编写makefile - makefile学习资料,入门基础,简单易学"
在Linux编程中,`makefile`是一个至关重要的工具,它自动化了构建项目的编译和链接过程,使得开发者能够高效地管理项目源代码。本文档是`makefile`的入门学习资料,由陈皓撰写并由祝冬华整理,内容丰富,适合初学者。
**第一部分、概述**
这部分简要介绍了`makefile`的作用和重要性,解释了为何需要`makefile`来组织和简化程序构建流程。
**第二部分、关于程序的编译和链接**
此部分讲解了编译和链接的基本概念,为理解`makefile`的编写提供了基础。
**第三部分、Makefile介绍**
1. **Makefile的规则**: 规则是`makefile`的核心,定义了如何从源文件生成目标文件。
2. **一个示例**: 提供了一个简单的`makefile`示例,帮助读者直观理解规则的结构。
3. **make是如何工作的**: 解释了`make`命令如何解析`makefile`,执行指定的任务。
4. **makefile中使用变量**: 变量使得`makefile`更灵活,可以存储常量或动态值。
5. **让make自动推导**: `make`可以自动推导源文件和目标文件之间的依赖关系。
6. **另类风格的makefile**: 介绍不同风格的`makefile`编写方式。
7. **清空目标文件的规则**: 如何设置清理目标文件的规则,以便重置项目状态。
**第四部分、Makefile总述**
1. **Makefile的内容组成**: 包括显式规则、隐晦规则、变量定义、文件指示和注释。
2. **Makefile的文件名**: 默认名为`Makefile`,但也可以指定其他名称。
3. **引用其它的Makefile**: 如何在主`makefile`中包含其他`makefile`以组织复杂项目。
4. **环境变量MAKEFILES**: 通过此环境变量可以指定额外的`makefile`。
5. **make的工作方式**: 描述`make`在执行时如何解析规则和执行命令。
**第五部分、书写规则**
1. **规则举例**: 提供多种规则的实例,展示不同情况下的规则编写。
2. **规则的语法**: 详细阐述规则的语法结构。
3. **使用通配符**: 如何在规则中使用`*`等通配符匹配多个文件。
4. **文件搜寻**: `make`如何查找源文件和目标文件。
5. **伪目标**: 用于表示非实际文件的目标,如`clean`目标。
6. **多目标**: 如何在一个规则中处理多个目标文件。
7. **静态模式**: 使用模式规则来创建一组相关的目标文件。
8. **自动生成依赖性**: 自动从源文件生成依赖性,减少手动维护工作。
**第六部分、书写命令**
1. **显示命令**: 如何使`make`在执行命令前打印命令行。
2. **命令执行**: 解释`make`如何执行命令及其顺序。
3. **命令出错**: 错误处理,包括当命令失败时的行为。
4. **嵌套执行make**: 在一个`makefile`中调用另一个`make`实例。
5. **定义命令包**: 使用`\`来包裹命令行,以跨越多行。
**第七部分、使用变量**
1. **变量的基础**: 变量的声明和使用。
2. **变量中的变量**: 变量可以包含其他变量的值。
3. **变量高级用法**: 如何进行变量的运算和扩展。
4. **追加变量值**: 向已有的变量值添加新值。
5. **override指示符**: 强制覆盖外部环境中的变量定义。
6. **多行变量**: 多行字符串的处理方法。
7. **环境变量**: 如何在`makefile`中使用系统环境变量。
8. **目标变量**: 目标相关的变量,可以在规则中使用。
9. **模式变量**: 基于模式的变量,适用于匹配一组文件。
**第八部分、使用条件判断**
1. **示例**: 展示条件判断的使用情况。
2. **语法**: 介绍条件语句的结构和语法。
**第九部分、使用函数**
1. **函数调用语法**: 描述如何在`makefile`中使用函数。
2. **字符串处理函数**: 如`subst`, `patsubst`, `strip`, `findstring`, `filter`, `filter-out`, `sort`, `word`, `wordlist`, `words`, `firstword`等,用于对字符串进行操作。
3. **文件名操作函数**: 如`dir`, `notdir`等,用于处理路径和文件名。
此文档深入浅出地介绍了`makefile`的各个方面,从基础概念到高级技巧,旨在帮助初学者快速掌握`makefile`的编写,提高Linux开发效率。通过学习这些内容,开发者将能编写出高效、可维护的`makefile`,使得项目的构建过程更加有序和自动化。
2021-05-07 上传
2018-01-23 上传
2023-09-04 上传
2023-06-07 上传
2023-05-02 上传
2023-11-26 上传
2023-08-29 上传
2023-10-06 上传
2023-06-05 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
jocelyn_csdn
- 粉丝: 0
- 资源: 3
最新资源
- 多模态联合稀疏表示在视频目标跟踪中的应用
- Kubernetes资源管控与Gardener开源软件实践解析
- MPI集群监控与负载平衡策略
- 自动化PHP安全漏洞检测:静态代码分析与数据流方法
- 青苔数据CEO程永:技术生态与阿里云开放创新
- 制造业转型: HyperX引领企业上云策略
- 赵维五分享:航空工业电子采购上云实战与运维策略
- 单片机控制的LED点阵显示屏设计及其实现
- 驻云科技李俊涛:AI驱动的云上服务新趋势与挑战
- 6LoWPAN物联网边界路由器:设计与实现
- 猩便利工程师仲小玉:Terraform云资源管理最佳实践与团队协作
- 类差分度改进的互信息特征选择提升文本分类性能
- VERITAS与阿里云合作的混合云转型与数据保护方案
- 云制造中的生产线仿真模型设计与虚拟化研究
- 汪洋在PostgresChina2018分享:高可用 PostgreSQL 工具与架构设计
- 2018 PostgresChina大会:阿里云时空引擎Ganos在PostgreSQL中的创新应用与多模型存储