Advertisement

Make手册中文版

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
### make帮助文档中文版知识点概览本节主要介绍$...$ makefile文件书写方式与运行规则的制定和应用。具体而言,我们详细说明了不同编写风格及其适用场景,并探讨如何在实际操作中遵循make规则以实现高效的项目管理。通过这种方式,可以使开发流程更加规范化且易于维护。1.1 概述`Make` is an automated build tool designed to compile source code while managing project construction. It leverages a `makefile` to automate the compilation of source code and manage project construction processes, incorporating all necessary configurations and commands required for constructing projects.1.2 准备知识为了更好地掌握`make`这个工具,需要熟悉一些基本概念。例如: - **构建目标(target)**:即项目中要实现的具体功能或成果。 - **所需资源(dependency)**:构建目标所依赖的文件、库或其他资源。 - **执行步骤(command)**:完成构建目标所需的分步操作。 #### 二、GNU make介绍 支持处理复杂的依赖关系,并根据项目需求动态调整任务顺序。提供一系列灵活且可定制的配置选项,以满足不同项目的具体需求。 用于构建、编译以及执行程序或脚本文件,提升开发效率。基于简洁且易读的文本式语法结构设计,确保代码编写直观且高效。 详细描述任务间的依赖关系,并根据这些逻辑顺序自动安排执行流程。支持并行处理、独立运行以及混合模式的工作方式,满足不同场景的需求。 在项目的规划和开发初期阶段,自动化生成所需的构建文件,并为后续步骤奠定基础。减少手动输入的重复性工作内容,提高整体开发效率的同时降低出错的可能性。 每个错误都附有详尽的技术说明和位置标记,便于快速定位并解决问题。确保构建的可执行文件在不同环境上都能正常运行,并支持多种操作系统版本,保持项目的一致性和稳定性。 段落保持不变By the make程序, Makefile被用来控制构建过程。其中一般会包含一组具体的目标、相关的依赖项以及实现这些目标所需的一系列指令。在第2章第2小节中对构建器规则的详细解析`make`根据解析`Makefile`中的指导条文来决定构建进程。每个规则包含以下几个组成部分: - **输出项**:一个或多个文件名。 - **依赖关系**:一个或多个文件名列表,表示目标文件的构建基于这些文件的存在。 - **构建指令**:一组shell命令,用于执行目标文件的具体构建操作。 该部分内容已省略(完整版本请在下方查看)作为一个基础的`Makefile`示例,我们可以将其结构清晰地呈现出来。``` target: dependency gcc -o target dependency.c ``` 该规则表明,若`dependency.c$较新,则由gcc编译`dependency.c$以产生`target$。该工具/软件的工作原理是怎样的?在`make`中,工作流程的主要步骤包括:首先解析用户提供的Makefile文件中的构建指令;随后分析其中的构建规则;接着识别出需要执行构建的目标列表;最后生成并运行相关的构建命令以实现上述目标。 在第2.5节中,明确设定变量。在Makefile中可以声明变量来减少冗余的相同字符组成的路径名称。例如:``` CC=gcc CFLAGS=-Wall all: hello hello: main.o util.o $(CC) -o hello main.o util.o $(CFLAGS) main.o: main.c $(CC) -c main.c $(CFLAGS) util.o: util.c util.h $(CC) -c util.c $(CFLAGS) ``` 2.6 自动推导规则`make`具备自动推导规则的能力,即无需显式定义规则,系统可以根据文件扩展名自动生成构建规则。具体而言,在将.c文件转换为.o文件时,系统会按照相应的规则执行。另一种独特设计的Makefile文件,基于不同寻常的方式自动生成项目所需的依赖项配置信息。除了常规使用标准的`makefile`文件外,还可以根据具体需求选择不同的文件命名策略或样式设定以实现规则定制。如前所述,通过命令行参数可以指定`makefile`文件的路径和名称。该系统能够高效地移除工作目录中的过程文件。通常情况下,在大多数项目中,一个称为`make clean`的任务会被包含。该任务的主要作用是清除构建过程中的临时文件。``` clean: rm -f *.o hello ``` #### 三、关于Makefile的功能介绍3.1 Makefile的内容Makefile一般包含目标任务、其他依赖项、执行命令以及变量设置等主要涉及的内容。3.2 makefile文件的命名遵循一定的命名原则。By default, the `make` tool looks for files named Makefile or makefile. It can be specified via command-line arguments to use different filenames.3.3 可集成额外的makefile文件通过`include`指令可以实现对其他`Makefile`文件的合并功能至当前工作文件中``` include common.mk ``` 标识符MAKEFILES标识符`MAKEFILES`用于存储在当前的`make`执行过程中所包含的所有 Makefile 文件。变量MAKEFILE_LIST`MAKEFILE_LIST`变量记录着所有已经被`make`解析过的Makefile的完整路径。第3.6部分讨论了一些特定的关键参数。这些特殊的数值或符号通常用于表示特定的系统状态、计算模式或其他独特属性。有些特别的符号,如`$@``$<``$^`和`$+`等在规则指令中被用作特定的标记符。这些符号被用来作为指令的一部分,在其中它们指代具体的操作目标或所需资源。在软件开发中,$...$通常用于优化代码构建流程在使用`Makefile`进行项目管理时,如果该文件也需要被构建,则可以通过特定的机制来调节构建流程。3.8 复制现有makefile至新的位置在执行中可以在`Makefile$`中自动生成并调用新的`Makefile$`文件。3.9 make如何解码makefile文件在`make`解析`Makefile`文件的过程中遵循特定的规则,这些规则包含以下内容: - **变量取值**:如何处理和解析变量引用。 - **条件语句**:如何利用条件语句来控制构建过程的具体方式。 - **规则的定义**:如何明确地定义目标和依赖关系。3.9.1 Variables Values`make`提供不同类型的赋值方法,其中涉及递归展开和直接展开。 第3.9.2节 条件语句make被配置为能够执行特定的条件检查,其行为可通过`ifeq`, `ifdef`和`ifndef`等自定义选项来实现不同的构建控制功能。在第3.9.3条中对规则进行定义。该条款旨在阐述具体规定的内容与实施标准,确保各项操作符合既定程序。在制定规则时,必须特别注意到目标、依赖与命令之间存在的密切关联本节对相关技术进行了归纳和分析。本章概述了`Makefile`的核心架构、变量声明及其在判断流程中的应用。 第四章 $Makefile$ 的规则需遵循以下规定具体规定项目目标并明确说明其执行流程。 一个例子一个详细的`Makefile`规则示例可以帮助深入理解其结构和功能。4.2 规则遵循其中涉及的核心语法要素包括``` target: dependency... command... ``` 本节主要探讨了不同类型的依赖关系`make`涵盖多种依赖类型,具体包括:**显式依赖**:可列举的依赖项.- **隐含依赖**:由文件扩展名自动推导出的依赖项。 文件命名规定必须包含通配符符号以确保所有文件名明确无误避免使用非标准的特殊符号建议严格遵循统一的标准格式其中,可以采用通配符来匹配一系列文件名。比如:``` %.o: %.c gcc -c $< -o $@ ``` 4.4.1 案例分析:通配符的使用通过使用通配符,我们可以使编写规则更加便捷。例如,在编程中,通过使用通配符,我们可以更高效地匹配模式。``` objects = $(patsubst %.c,%.o,$(wildcard *.c)) all: $(objects) ``` 该方案的通配符设置存在哪些问题?主要缺陷是什么?在使用通配符时,可能会出现意外的结果,特别是在文件名中含有特殊字符的时候。该功能 wildcards`wildcard`函数用于实现对满足特定标准文件搜索的需求,并旨在获取所有匹配结果的具体信息。4.5 目录搜寻make提供了一种目录搜索功能,其主要作用是帮助用户快速定位所需的目标文件和依赖项。该工具支持多种搜索模式,并通过VPATH变量指定默认的搜索路径。在基本模式下,系统会优先检查当前工作目录中的相关文件;如果未找到匹配结果,则会依次遍历父目录直至寻找到目标文件或满足条件的资源。此外,make还具备智能提示功能,在命令行界面中为用户提供推荐的搜索路径选项,以提高工作效率和准确性。编译脚本中的虚拟目标虚拟目标(如`all`, `clean`等)不会生成任何真实的文件文档,仅仅作为指令顺序的管理工具。4.7 硬性约束(不受外部指令控制且不依赖其他因素的规则)硬性指标主要作用在于触发特定的行为,其中的一个典型应用就是清除临时存储的文件。4.8 无内容的工作文件空目标文件意味着该目标无需构建,并且仅作为一个依赖存在。在Makefile中,特定的部分被赋予了明确的功能和作用明确的目标用以应对特定的挑战或问题,例如清理工作目录等。 4.10 多重目标的优化问题在规则设置中配置多个目标时,请参考以下情况:``` one two: three echo Building one and two ``` 4.11 多种规则的目标可为同一目标设定若干条规则,每一条规则都具有独特的背景条件4.12 静态模式静态配置是一种简化规则定义的方法,该方法通过减少代码中重复引用及其相关的操作指令数量来实现降低代码冗余的目的。该静态模式构建机制基于固定的语法规则定义了所有模式参数。静态模式规则应用了一种独特的语法规则来对应一组目标文件。4.12.2 静态模式和隐含规则静态模式规则可以与隐含规则相结合,从而实现更加灵活的构建逻辑第1部分:双冒号的使用方式及其作用机制。该运算符通常用于引用对象的具体属性或方法,在Python语言中尤其常见,其应用广泛且具有特定的操作流程。双重引用机制支持为目标建立多种依赖关系,每个依赖各自拥有独立的指令集。 4.14 自动生成依赖关系make具备自主性地识别各源文件间的相互依存关系,并以此为基础建立系统的结构。 五、规则的命令5.1 操作执行过程中的实时结果反馈机制在默认情况下,make会展示执行的命令;可通过指定相关命令参数将其隐藏。 5.2 命令的执行该命令由shell环境运行,因此可以执行所有有效的shell指令。 5.3 并发执行命令`make`具备并行构建功能,用户可以通过指定命令行参数来配置同时执行的最大任务数。 5.4 命令执行的失误 5.4 命令执行的失误当指令运行出错时,`make$`将导致构建进程中断。5.5 停止MAKE操作通过特定的指令可以实现提前终止make任务的执行5.6 make的递归执行可以被理解为在函数调用中自身不断重复的过程make具备自调式操作的能力,能够通过自我调用完成任务,并最终形成复杂的系统架构。 **5.6.1标识符MAKE** **5.6.2标识符及其递归处理** **5.6.3参数及递归操作** **5.6.4 -w选项设置** 该模块将配置包含在内的一组命令集。命令包能够整合多个指令,并将它们作为统一的整体进行处理。空命令的执行会导致系统资源不足。空命令不会执行任何操作,但它仍可被视为占位符,并能引发相关行为。第六章中的Makefile参数设置在该系统中,变量的引用是确保数据一致性的关键机制。通过变量的引用,程序能够有效地访问和操作所需的数据。变量引用采用了`$`符号与变量名称结合的方式进行。该部分涉及两类变量的说明及其初始化操作。变量定义分为两类:递归展开式变量和直接展开式变量。6.2.1 Recursive expansion variable递归展开式变量在使用时会逐步遵循递归规则进行扩展,当变量引用消失时停止运算。6.2.2 fully expanded variable即时展开的变量在定义时即刻被展开,其内部的变量引用会逐步处理。在编程环境中定义一个空格用于标识特定的数据存储位置或变量命名空间的基点有时候,在`Makefile`文件中会标识出一个空格或其他空白符号。 在6.2.4节中讨论的操作符系列中,“?=”符号被特别指出是一种用于执行特定逻辑运算的比较运算符。这种操作符通过将两个数值进行对比来判断其相对大小,从而实现数据处理过程中的精确匹配需求。`?=`运算符被称为`?=`符号,它被用来定义仅在变量尚未赋值时才起作用的变量。 第6.3节详细讨论了变量的高级应用方法,包括嵌套结构、条件分支以及循环操作等关键技巧。变量可以支持复杂的替换操作和套嵌引用功能,从而实现配置的灵活性提升。在本节中,我们探讨了如何通过标识符的替代引用来优化代码中的变量引用策略。为了提高代码的效率和可维护性,我们建议采用更加灵活且直观的方式进行变量替换,并结合具体的引用规则以确保程序的稳定运行。变量中的文本可以通过特定的函数进行替换。在某些编程语言中,允许一个variable名直接或间接地调用另一个variable的值。例如,在JavaScript中,可以使用let或const关键字来定义variable,并通过$1这样的语法结构实现套嵌引用。可以通过在一个变量内嵌入另一个变量的方式实现嵌套引用。第6.4节 变量赋值变量可在命令行内/外脚本中被重新赋值或定义。进行变量的配置操作该变量可通过多种途径进行设置,具体包括通过命令行参数配置以及在`Makefile`文件中进行参数指定。该操作允许对现有变量进行扩展或补充,从而提升系统处理能力。除了替换现有的变量值外,还可以采用特殊的方法补充现有数值。 该系统中的第6.7号字段为上写入令指示符或清除指令字段。该`override`标志用作替代其中的变量设置6.8 定义多行 Makefile具备允许多个变量的分步设置的能力,从而实现了对复杂数据结构的支持。6.9 系统环境变量make`支持通过获取系统的环境变量来将这些变量应用到`Makefile`中。 **6.10 明确设置目标变量**该系统通过支持专有标识符来赋予特定目标专属的数据字段。 6.11 该方法用于设定变量的参数模式指定变量允许根据目标的模式来设置不同取值范围内的数值七、源文件中的条件判断指令在满足特定条件下会被依次执行。7.1 通过具体案例进行阐述为了更好地说明条件执行的效果和作用,可以采用具体的实例进行阐述。 7.2 基于条件的语法结构make`通过条件语句来实现构建过程,并包含如`ifeq`, `defined, `undefned`等关键字。 7.3 标记测试的条件语句条件语句可用于判断变量是否被赋值过及其状态如何。第八章、R语言内置功能模块8.1 Mathematical functions calling syntax`make`提供了一系列预装功能,这些功能不仅适用于文本操作,还涵盖了其他高级功能。8.2 文本处理函数的功能包括以下内容:该功能能够实现特定的文本处理逻辑,通过分析和修改文本内容来满足用户需求。文本处理函数能够简化文本的处理过程,比如替代表达为字符串并进行排序等操作。 $substitutes the content portion from its source to its destination该函数将...替换为...$(SUBSTITUTE PATTERN, REPLACE OPERATION, text input)`patsubst`函数负责进行模式匹配/替换操作,能够处理一组文本。$(remove STRINT) $(remove STRINT)$`strip`函数的用途是删除字符串中的空格、换行符以及其他不可见控制字符。 $(find string find, in)$是一个用于查找字符串位置的函数调用操作。该函数通过指定名称FIND来识别目标字符串,并在给定的位置IN处执行查找过程。该函数用于判断某字符串是否存在于一字符串中。实现过滤功能于$(filter PATTERN…,TEXT)$`Filter`功能被用作根据预设的标准或规则对输入的数据进行筛选,以提取满足特定条件的信息。The $(filter-out PATTERN,TEXT) operation is used to remove elements that match a specific criterion.该函数用作过滤掉所有不匹配的字符串 The sorting operation is applied to the list variable, denoted as $(sort LIST)$.该排序算法被专为字符串列表设计以完成排序任务$$(variable X,textual description)$$`word`函数用以获取字符串列表中的特定元素。8.2.9 $(wordlist S,E,TEXT)$用于定义词表的参数设置`wordlist`函数用于提取字符串列表中一组连续的项。8.2.10 $(\text{WORDS} \quad \text{TEXT})$`words`函数负责统计字符串列表中的元素数量。 该函数用于从给定文本中滤除特定模式匹配的内容此段内容可能存在冗余描述,具体而言,这涉及到了`filter-out`函数的功能介绍。 该中文版《make帮助文档》对核心知识要点进行了系统介绍,涵盖了理论基础和实践技巧等多方面内容,并旨在深入理解这一工具的使用方法以及其在实际项目开发过程中的具体应用场景。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • GNU Make
    优质
    《GNU Make 手册(中文版)》为用户提供了一份详尽的GNU Make工具使用指南,帮助开发者更好地理解和运用Makefile进行自动化构建和管理项目。 GNU make man的中文翻译版是一个很好的选择,特别是对于那些阅读英文文档有困难的人来说。
  • 《GNU Make
    优质
    《GNU Make 中文手册》是一本全面介绍GNU Make工具使用的中文指南,帮助开发者掌握自动化编译和程序构建技巧。 ### GNU Make 中文手册 #### 目录 **第一章:介绍** - 1.1 系统v版本make的使用方式与GNU make的不同之处。 - 1.2 GNU make的主要特点。 **第二章:Makefile文件的基础知识** - 2.1 Makefile简介 - 2.2 变量的基本用法 - 2.3 规则和依赖关系 **第三章:编写规则与命令** - 3.1 编写简单的编译规则 - 3.2 使用变量简化Makefile的维护工作 - 3.3 命令执行时的一些技巧 **第四章:条件判断语句** - 4.1 make中的if条件表达式使用方法。 - 4.2 检查环境变量和文件存在性的函数。 **第五章:make控制流程的构建** - 5.1 for循环 - 5.2 case选择结构 **第六章:Makefile的管理与维护** - 6.1 利用include指令来组合多个Makefile。 - 6.2 使用变量定义库路径和编译选项。 **第七章:目标文件生成规则详解** - 7.1 如何指定不同的依赖关系 - 7.2 指定命令执行的环境 **第八章:使用make进行自动化构建** - 8.1 定义Makefile的位置。 - 8.2 替换特定的目标和源文件。 **第九章:隐含规则的应用与理解** - 9.1 使用预定义的编译方式 - 9.2 自动化变量的作用 **第十章:静态库更新指南** - 10.1 库成员作为目标。 - 10.2 更新静态库的方法。 **第十一章 : GNU make的特点** - 11.1 系统v版本的特性 - 11.3 GNU Make自身的特色 **第十二章:与其他make版本兼容性问题** **第十三章:Makefile书写规范与约定** - 13.2 命令行格式建议 - 13.4 安装目录变量定义标准 **附录一: 关键词索引** - GNU Make关键字和环境变量列表。 通过以上章节,读者可以全面掌握GNU make的基本用法以及高级技巧。无论是初学者还是有经验的开发者都能从中受益匪浅。
  • GNU Make 翻译
    优质
    《GNU Make 手册(中文翻译版)》是 GNU Make 官方文档的权威中文译本,深入浅出地介绍了自动化编译和构建过程的工具使用方法与技巧。 于凤昌译者注:本人在阅读Linux源代码过程中发现,若要全面了解Linux的结构、理解其编程总体设计及思想,则必须首先通读各级Makefile文件。目前虽然有一些相关著作,但都不能完全解释Linux源代码中的各级Makefile文件内容。因此,在认真研读了GNU Make使用手册(3.79版)原文的基础上,本人将其翻译成中文以满足对Linux源代码有兴趣或者希望采用GCC编写程序但缺乏全面了解GNU Make的人士的需要。本人为业余爱好者而非专业译者,如有问题可通过电子邮件与我联系共同讨论,我的电子邮箱地址是:yfc70@public2.lyptt.ha.cn 。请注意文章中出现的斜体加粗字表示章节标题。
  • GNU Make2020.zip
    优质
    《GNU Make中文手册2020版》为用户提供全面、详细的GNU Make命令和功能解释,帮助用户掌握自动化编译过程中的任务管理与依赖关系配置技巧。适合各水平开发者阅读使用。 学习Makefile知识的权威资料,适用于日常查询makefile的一些细节功能。本段落献给所有热爱Linux的程序员!文档版权所有。 本段落详细介绍了GNU make工具,包括其用法、语法等,并重点讨论了如何为一个工程编写Makefile。作为Linux程序员,掌握make工具及其使用方法以及编写Makefile是必不可少的技能。然而,系统且详细的中文资料较少,因此本人在工作之余花费18个多月的时间翻译并整理了“info make”,完成了这个中文版手册。 本书并非单纯的语句翻译版本,在此基础上根据我个人的工作经验对GNU make的一些语法和用法进行了详细分析与说明,并加入了一些个人的观点及实践总结。书中所有的例子均能在支持V3.8版本的GNU make系统中正确执行。
  • GNU Make
    优质
    《GNU Make 中英文手册》是一本全面介绍GNU Make工具使用的中英双语指南,适合软件开发人员参考学习。 GNU Make是Unix/Linux环境中广泛使用的自动化构建工具,它允许开发者通过定义规则来编译、链接或者其他方式处理源代码文件。这个工具的核心概念是Makefile,一个包含指令和依赖关系的文本段落件,使得编译过程更加高效和自动化。下面将详细阐述GNU Make的相关知识点。 1. **Makefile**: Makefile是GNU Make工作的核心,它定义了目标文件、依赖文件以及如何从依赖文件创建目标文件的规则。通常,目标是可执行文件或库,而依赖则是源代码文件。例如: ```make all: program program: main.o func.o gcc -o program main.o func.o main.o: main.c gcc -c main.c func.o: func.c gcc -c func.c ``` 这个例子展示了如何编译两个源文件`main.c`和`func.c`,并链接生成可执行程序`program`。 2. **规则**: 规则由目标、依赖关系以及命令组成。目标是需要创建或更新的文件,而依赖则是构建时所需的其他文件;命令用于定义具体的操作步骤。在Makefile中,每条命令前需使用制表符标识以供GNU Make识别执行操作。 3. **变量**: 在Makefile里可以设置各种变量来存储重复使用的字符串,例如编译器路径、选项等信息: ```make CC = gcc CFLAGS = -Wall -g ``` 这里定义了`CC`为编译器命令名,而`CFLAGS`则包含了警告和调试模式的参数。 4. **隐含规则**: GNU Make内置了一些默认规则用于处理常见的构建任务。比如对于`.c`文件,默认会调用相应的编译操作以生成目标二进制或库文件。 5. **模式规则**: 模式规则允许定义一种通用形式,适用于匹配一组相似的源代码文件。例如: ```make %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ ``` 此例中`%`作为通配符表示任意字符序列;而`$<`和`$@`分别代表依赖项与目标对象。 6. **条件语句**: Makefile支持基于特定条件执行不同规则或设置变量的功能,以适应不同的构建需求。 7. **函数**: GNU Make提供了众多内置函数供用户使用,比如用于文件名匹配的`$(wildcard)`、模式替换功能的`$(patsubst)`等。 8. **目标自动更新机制**: 当发现某个目标比其依赖更旧或不存在时,GNU Make会执行相应命令来更新该目标文件。 9. **清理规则**: 通常Makefile中会有个名为“clean”的特殊目标用来删除生成的临时及输出文件。例如: ```make clean: rm -f *.o program ``` 10. **多层级Makefile管理**: 使用`-include`命令可以包含其他Makefiles,有助于项目管理和模块化设计。 11. **递归使用Make**: 通过在子目录或其他地方调用自身,可以在大型项目中实现复杂的构建任务。 12. **执行策略**:GNU Make遵循“最少工作”原则,仅重新编译那些过时或缺失的依赖文件以提高效率和性能。 为了深入理解GNU Make的工作原理、高级特性及最佳实践,《gnu_make 中英文手册》是很好的学习资源。这本书籍能够帮助你更好地掌握这个强大的工具,并提升开发过程中的工作效率。
  • GNU MakePDF
    优质
    《GNU Make中文手册》是一本全面介绍GNU Make工具使用的PDF文档,提供详细的命令、函数和技巧解释,帮助用户高效管理编译过程。 ### GNU make 中文手册知识点概览 #### 一、概述 **GNU make** 是一个用于构建项目的工具,它能够根据文件的时间戳来决定哪些文件需要重新编译或更新。本手册将详细介绍 **GNU make** 的使用方法,包括 Makefile 的编写、规则的定义以及变量的应用等。 ##### 1.1 Make 之前的基本知识 - **概述**:在使用 **GNU make** 之前,了解其基础知识是非常重要的。这里涵盖了 **GNU make** 的工作原理、Makefile 文件的结构以及如何利用 **GNU make** 来自动化构建过程。 - **准备知识**:读者需要具备一定的 shell 编程基础,了解文件系统和基本的编程概念。 ##### 1.2 GNU make 介绍 - **Makefile 简介**:介绍了 Makefile 的基本结构,包括目标、依赖项和命令行。 - **Makefile 规则介绍**:详细解释了规则的概念,包括目标、依赖项、命令以及规则的作用。 - **简单的示例**:通过一个简单的示例来展示如何编写 Makefile。 - **make 如何工作**:深入探讨了 **make** 工具的工作流程,包括如何读取 Makefile、如何解析规则以及如何执行命令。 - **指定变量**:讨论了如何在 Makefile 中定义和使用变量。 - **自动推导规则**:解释了自动推导规则的概念及其在实际应用中的作用。 - **另类风格的 makefile**:介绍了一些非传统的 Makefile 写作方式,例如使用模式规则。 - **清除工作目录过程文件**:讲解了如何通过 Makefile 清理项目构建过程中产生的临时文件。 #### 二、Makefile 总述 ##### 2.1 Makefile 的内容 - **Makefile 的内容**:深入探讨了 Makefile 的各个组成部分,包括规则、变量定义、函数调用等。 - **makefile 文件的命名**:介绍了 Makefile 文件的标准命名习惯以及如何指定不同的文件名。 - **包含其它 makefile 文件**:讲解了如何在一个 Makefile 文件中包含另一个 Makefile 文件,这对于大型项目非常有用。 - **变量 MAKEFILES**:解释了 MAKEFILES 变量的用途以及如何利用它来管理多个 Makefile 文件。 - **变量 MAKEFILE_LIST**:介绍了 MAKEFILE_LIST 变量,该变量包含了所有被 make 加载的 Makefile 文件的列表。 - **其他特殊变量**:列举并解释了一些特殊的 make 变量,这些变量对于控制 make 的行为非常重要。 - **makefile 文件的重建**:讨论了如何让 make 在适当的时候重新生成 Makefile 文件。 - **重载另外一个 makefile**:讲解了如何在 make 运行期间重载一个新的 Makefile 文件。 #### 三、Makefile 的规则 ##### 3.1 一个例子 - 通过具体的示例来展示 Makefile 规则的实际应用。 ##### 3.2 规则语法 - 深入介绍了规则的语法结构,包括目标、依赖项、命令等部分。 ##### 3.3 依赖的类型 - 讨论了不同类型的依赖关系,并解释了它们之间的区别。 ##### 3.4 文件名使用通配符 - **通配符使用举例**:通过实例来展示通配符的使用方法。 - **通配符存在的缺陷**:指出了使用通配符可能带来的问题及解决办法。 - **函数 wildcard**:介绍了如何使用 wildcard 函数来生成文件名列表。 ##### 3.5 目录搜寻 - **一般搜索(变量 VPATH)**:解释了 VPATH 变量的用途以及如何配置它来搜索文件。 - **选择性搜索(关键字 vpath)**:介绍了如何使用 vpath 关键字来指定特定的搜索路径。 - **目录搜索的机制**:详细阐述了 make 在查找文件时所采用的搜索策略。 - **命令行和搜索目录**:探讨了如何通过命令行参数来影响目录搜索的行为。 - **隐含规则和搜索目录**:讨论了隐含规则与目录搜索之间的相互作用。 - **库文件和搜索目录**:说明了如何处理库文件的搜索问题。 ##### 3.6 Makefile 伪目标 - 介绍了 Makefile 中的伪目标(即不对应于任何文件的目标),并说明了它们的应用场景。 ##### 3.7 强制目标 - 解释了什么是强制目标(即没有依赖项和命令的目标),以及它们的作用。 ##### 3.8 空目标文件 - 描述了空目标文件的概念及其用途。 ##### 3.9 Makefile 的特殊目标 - 列举并解释了一些特殊的 Makefile 目标,如 .PH
  • GNU Make _v_3.8.pdf
    优质
    《GNU Make 中文手册》是 GNU 项目下用于自动化编译过程的重要工具 make 的官方中文指南,版本 v3.8,适用于软件开发者和系统管理员。 学习Linux编程时掌握Makefile的使用是非常重要的。本段落将详细介绍在Linux环境下编写和使用Makefile的方法,并提供全中文翻译版本的内容,非常适合深入学习者参考。
  • Bash、GCC、GDB和Make
    优质
    本手册为程序员提供详尽的参考指南,涵盖了Bash脚本编程、GCC编译器使用、GDB调试技巧以及Make自动化构建工具的应用,助力开发者高效编写与维护代码。 这段内容包括了Bash中文手册pdf、gcc中文手册pdf、gdb中文手册pdf以及Make中文手册pdf,非常值得拥有。
  • Linux GNU-Make(高清含目录).pdf
    优质
    本书为《GNU-Make》官方文档的中文翻译版,提供清晰的PDF格式及详细的目录索引,适合需要使用GNU Make进行软件构建和自动化任务的Linux用户阅读参考。 本段落提供了详细的make使用说明,并介绍了如何编写makefile文件。一个工程中的源代码数量庞大且种类繁多,通常按类型、功能或模块分别存放在不同的目录下。通过定义一系列规则,makefile可以明确指定哪些文件需要先编译,哪些文件需后编译以及哪些文件需要重新编译等操作,并能执行更复杂的任务。与Shell脚本类似,makefile中也可以运行操作系统命令。
  • 《GNU Make 使用》()—— 于凤昌 翻译
    优质
    本书为GNU Make使用手册的中文翻译版本,由技术专家于凤昌倾情献译。详细介绍了GNU Make的各项功能与用法,是软件开发者不可多得的学习资料。 在阅读Linux源代码的过程中,我发现要全面了解Linux的结构、理解其编程总体设计及思想,必须首先全部读通Linux源代码中的各级Makefile文件。目前市面上虽然有一些相关著作,但这些资料可能不足以涵盖所有细节。因此,深入研究和解读Makefile文件对于掌握Linux内核的工作原理至关重要。