Makefile 编写指南
需积分: 9 142 浏览量
更新于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 上传
2011-09-14 上传
2023-09-04 上传
2023-06-07 上传
2023-05-02 上传
2023-11-26 上传
2023-08-29 上传
2023-10-06 上传
jocelyn_csdn
- 粉丝: 0
- 资源: 3
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍