第 18 章 使用 Make 管理更多代码
GNU Make 实用程序通常缩写为 Make,是控制从源文件生成可执行文件的工具。自动决定 复杂程序中的哪些部分已更改,需要重新编译。make 使用名为 Makefile 的配置文件来控制程序的构建方式。
18.1. GNU make 和 Makefile 概述 复制链接链接已复制到粘贴板!
要从特定项目的源文件创建可用的表单(通常是可执行文件),请执行几个必要的步骤。记录操作及其顺序,以便稍后重复操作。
Red Hat Enterprise Linux 包含 GNU make,这是专为此目的设计的构建系统。
先决条件
- 了解编译和链接的概念
GNU make
GNU make 读取 Makefile,其中包含描述构建过程的说明。Makefile 包含多个 规则,它们描述通过特定操作(方法)满足特定条件(目标)的方式。规则可以分层依赖于另一条规则。
运行不带任何选项的 make 即可在当前目录中查找 Makefile 并尝试访问默认目标。实际的 Makefile 文件名可以是 Makefile、 和 makefile GNUmakefile 之一。默认目标由 Makefile 内容决定。
Makefile 详情
makefile 使用相对简单的语法来定义 变量 和 规则,这些变量和规则由一个 target 和一个 recipe 组成。如果执行规则,则目标指定输出。具有配方的行必须以 tab 字符开头。
通常,Makefile 包含用于编译源文件的规则、用于链接结果对象文件的规则,以及充当层次结构顶部的入口点的目标。
请考虑以下 Makefile 用于构建由单个文件 hello.c 组成的 C 程序。
这将指定,要访问 所有目标,需要 hello 文件。要获得 hello,您需要 hello.o (由 gcc 链接),后者从 hello.c 创建(由 gcc编译)。
目标 all 是默认目标,因为它是不是以句点开头的第一个目标。如果当前目录包含这个 Makefile,则不带任何参数运行 会完全运行 make。
make
典型的 Makefile
较典型的 Makefile 使用变量来常规调整步骤,并添加目标"clean",这将删除除源文件以外的所有对象。
向此类 Makefile 添加更多源文件需要将它们添加到定义 SOURCE 变量的行。
其他资源
- GNU make:简介 - 2 Makefile 简介
- 第 15 章 使用 GCC 构建代码