GNU makefile中文教程详解

需积分: 44 6 下载量 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进行项目管理和自动化构建。