GNU makefile中文教程详解
需积分: 44 140 浏览量
更新于2024-07-29
收藏 1.9MB PDF 举报
"GNU+makefile中文手册"
GNU Makefile是构建自动化工具,它根据一系列规则来确定哪些程序需要重新编译,并执行相应的构建任务。这个中文手册是针对GNU Make 3.8版本的,由徐海兵在2004年翻译整理。手册详细介绍了如何编写和使用Makefile,帮助学习者理解和掌握这一强大的工具。
1. 概述
手册的开头部分对GNU Makefile进行了简要介绍,阐述了其在软件开发中的作用,主要是为了自动化编译和构建过程,减少重复劳动。同时,也提及学习Makefile需要的基本知识,如基本的编程概念和Unix/Linux环境。
2. GNU Make介绍
本章深入介绍了Makefile的结构和组成部分,包括Makefile的规则、变量和工作原理。Makefile由规则组成,每个规则定义了目标(target)及其依赖(dependency),并指定当目标更新时需要执行的命令。
- Makefile简介:Makefile是一个文本文件,包含了构建项目的规则和变量。
- 规则介绍:规则描述了如何从依赖文件创建目标文件,通常形式为`target: dependency... command...`。
- 简单示例:通过实际的例子展示如何编写Makefile,如编译C程序。
- make如何工作:解释了make如何读取Makefile,检查文件的修改时间,决定哪些目标需要更新。
- 指定变量:变量用于存储值,可以简化Makefile,如`CC = gcc`定义了编译器。
- 自动推导规则:GNU make内置了一些隐含规则,可以根据文件扩展名自动推导编译和链接的命令。
- 另类风格的makefile:介绍了不同风格的Makefile编写方式。
- 清除工作目录:如何定义清理目标,删除编译过程中产生的临时文件。
3. Makefile总述
这一章主要讲解了Makefile的高级特性和使用技巧。
- 内容和命名:Makefile可以包含变量定义、规则等,文件名不固定,但常用的是`Makefile`。
- 包含其他makefile:通过`include`指令可以包含其他Makefile文件,便于代码组织。
- 特殊变量:如`MAKEFILES`记录了当前被包含的所有Makefile,`MAKEFILE_LIST`包含已读取的Makefile列表。
- 解析规则:描述了make解析Makefile的过程,包括变量取值、条件语句和规则定义。
4. Makefile的规则
本章详细解析了Makefile中的规则,包括各种依赖类型、通配符、目录搜索以及特殊目标等。
- 例子和语法:通过实例解释规则的书写方式。
- 依赖类型:目标可以依赖于普通文件或目标文件。
- 通配符:`*`和`?`用于匹配多个文件名,但也可能带来问题。
- 目录搜索:`VPATH`变量和`vpath`关键字用于指定搜索源文件的额外目录。
- 隐含规则:make会自动应用一些预设的构建规则,如编译C源文件。
- 伪目标:如`.PHONY`,确保目标总是被重建,不受文件系统的影响。
- 强制目标和空目标:用于控制构建流程。
- 特殊目标:如`.SILENT`、`.INTERMEDIATE`等,有特定含义。
- 多目标和多规则:一个规则可以有多个目标,多个规则也可以共享一个目标。
- 静态模式规则:更灵活的规则定义方式,适用于大量相似文件的构建。
手册的剩余部分继续深入探讨Makefile的高级特性,如静态模式规则与隐含规则的结合、库文件的处理等,为读者提供了全面的指导。通过学习这个手册,开发者能够有效地利用GNU Makefile进行项目管理和自动化构建。
2017-11-07 上传
2024-05-05 上传
2023-05-25 上传
2023-07-15 上传
2023-05-24 上传
2024-01-13 上传
2023-06-07 上传
2023-06-01 上传
2023-06-09 上传
2023-06-03 上传
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
yumingyu9522
- 粉丝: 0
- 资源: 3
最新资源
- AirKiss技术详解:无线传递信息与智能家居连接
- Hibernate主键生成策略详解
- 操作系统实验:位示图法管理磁盘空闲空间
- JSON详解:数据交换的主流格式
- Win7安装Ubuntu双系统详细指南
- FPGA内部结构与工作原理探索
- 信用评分模型解析:WOE、IV与ROC
- 使用LVS+Keepalived构建高可用负载均衡集群
- 微信小程序驱动餐饮与服装业创新转型:便捷管理与低成本优势
- 机器学习入门指南:从基础到进阶
- 解决Win7 IIS配置错误500.22与0x80070032
- SQL-DFS:优化HDFS小文件存储的解决方案
- Hadoop、Hbase、Spark环境部署与主机配置详解
- Kisso:加密会话Cookie实现的单点登录SSO
- OpenCV读取与拼接多幅图像教程
- QT实战:轻松生成与解析JSON数据