当前位置: 首页 > 工具软件 > GNU Make > 使用案例 >

【翻译】GNU make 手册

弓方伟
2023-12-01

Make 概述

make 自动确定需要重新编译大型程序的哪些部分,并发出命令来重新编译它们。本手册描述了由 Richard Stallman 和 Roland McGrath 实现的 GNU make。自 3.76 版以来的开发由 Paul D. Smith 负责。

GNU make 符合 IEEE 标准 1003.2-1992 (POSIX.2) 的第 6.2 节。

我们的示例展示了 C 程序,因为它们是最常见的,但您可以将 make 与任何可以使用 shell 命令运行编译器的编程语言一起使用。事实上,make 并不局限于程序。您可以使用它来描述任何任务,其中包括某些文件必须在其他文件发生更改时自动从其他文件更新的任务。

包含三部分:

  1. 准备:准备工作及运行make
  2. 阅读:阅读这篇文档
  3. 问题

准备

准备和运行 Make
要准备使用 make,您必须编写一个名为 makefile 的文件,该文件描述程序中文件之间的关系并提供更新每个文件的命令。在程序中,可执行文件通常是从目标文件更新的,而目标文件又是通过编译源文件生成的。

一旦存在合适的 makefile,每次更改一些源文件时,这个简单的 shell 命令:

make

这条命令足以执行所有必要的重新编译。 make 程序使用 makefile 数据库和文件的最后修改时间来决定哪些文件需要更新。对于这些文件中的每一个,它都会发布记录在数据库中。

您可以提供命令行参数来控制应重新编译哪些文件或如何重新编译。请参阅如何运行 make。

如何阅读本手册

如果您是新手,或者正在寻找一般介绍,请阅读每章的前几节,跳过后面的部分。在每一章中,前几节包含介绍性或一般信息,后面几节包含专业或技术信息。例外的是第二章,Makefiles 简介,所有这些都是介绍性的。

如果您熟悉其他 make 程序,请参阅 GNU make 的特性,它列出了 GNU make 的增强功能,以及不兼容性和缺失的特性,它解释了 GNU make 缺少的一些其他东西。

问题和Bug

如果您在使用 GNU make 时遇到问题或认为您发现了错误,请向开发人员报告;我们不能承诺做任何事情,但我们可能很想解决它。

在报告错误之前,请确保您确实发现了真正的错误。仔细重新阅读文档,看看它是否真的说你可以做你想做的事。如果不清楚您是否应该能够做某事,也请报告;这是文档中的错误!

在报告错误或尝试自己修复之前,请尝试将其隔离到重现问题的最小可能生成文件中。然后将 makefile 和 make 给您的确切结果发送给我们,包括任何错误或警告消息。请不要解释这些消息:最好将它们剪切并粘贴到您的报告中。在生成这个小的 makefile 时,请确保不要在您的makefile中使用任何非免费或不寻常的工具:几乎所有这些工具的功能都可以通过 shell 命令来完成。最后,一定要解释你预期会发生什么;这将帮助我们确定问题是否真的存在于文档中。

一旦你有一个确切的问题,你可以通过两种方式之一报告它。将电子邮件发送至: bug-make@gnu.org
或使用我们基于 Web 的项目管理工具,网址为: http://savannah.gnu.org/projects/make/

除上述信息外,请注意包含您使用的make版本号。您可以使用命令“make --version”获取此信息。确保还包括您正在使用的机器类型和操作系统。获取此信息的一种方法是查看命令“make --help”的最后几行输出。

原文。1


  1. https://www.gnu.org/software/make/manual/make.html#Overview ↩︎

 类似资料: