GNU makefile中文手册:构建与管理软件工程
需积分: 44 67 浏览量
更新于2024-10-08
收藏 1.9MB PDF 举报
"GNU+makefile中文手册"
GNU Makefile 是一个强大的自动化构建工具,它用于管理软件项目的构建过程。在编程领域,特别是C/C++项目中,Makefile 起着核心作用,它告诉 `make` 命令如何编译、链接源代码以及执行其他相关任务。
该中文手册主要分为以下几个部分:
1. 概述:
- 介绍了 `make` 的基本概念,包括它的用途和功能。
- 阐述了学习 `make` 前需要了解的基础知识,如命令行操作和简单的脚本编写。
2. GNU make介绍:
- Makefile简介:讲解了什么是Makefile,它如何定义目标、依赖和命令。
- Makefile规则:详细解释了规则的结构,包括目标、依赖和命令行。
- 简单的示例:通过实际例子展示了如何编写基本的Makefile。
- make如何工作:说明了 `make` 如何解析和执行Makefile中的指令。
- 指定变量:介绍了如何在Makefile中定义和使用变量,以实现代码复用和简化。
- 自动推导规则:说明了 `make` 如何自动推导源文件到目标文件的编译规则。
- 另类风格的makefile:提到了不同的Makefile编写风格。
- 清除工作目录过程文件:讲解如何设置清理目标以删除编译过程中产生的临时文件。
3. Makefile总述:
- Makefile的内容:讨论了Makefile可以包含的各个方面,如目标、规则、变量等。
- makefile文件的命名:说明了Makefile文件的命名规范。
- 包含其它makefile文件:介绍了如何使用 `include` 指令包含其他Makefile。
- 变量MAKEFILES:讲解了 `MAKEFILES` 变量的作用和使用。
- 变量MAKEFILE_LIST:阐述了 `MAKEFILE_LIST` 变量的用途。
- 其他特殊变量:提到了一些预定义的特殊变量,如 `CC` 和 `CFLAGS`。
- makefile文件的重建:讨论了如何在Makefile中自动生成或更新Makefile自身。
- 重载另外一个makefile:解释了如何使用 `-f` 或 `--file` 选项指定不同的Makefile。
- make如何解析makefile文件:详细描述了 `make` 解析和处理Makefile的步骤。
4. Makefile的规则:
- 规则语法:深入探讨了规则的语法和组成。
- 依赖的类型:区分了直接依赖和间接依赖。
- 文件名使用通配符:介绍了如何使用 `*` 和 `?` 等通配符匹配多个文件。
- 目录搜寻:讲解了如何使用 `VPATH` 和 `vpath` 设置搜索路径。
- Makefile伪目标:如 `.PHONY`,确保目标总是被视为需要重新构建的。
- 强制目标和空目标:讨论了没有命令或依赖的目标,以及创建空目标的用法。
- Makefile的特殊目标:如 `.SILENT`, `.SECONDARY` 等,用于控制 `make` 的行为。
- 多目标和多规则目标:解释了如何在一个规则中处理多个目标。
- 静态模式规则:允许更灵活的规则定义,可以匹配多个不同的目标。
手册还包含了更多高级话题,如条件语句、函数的使用、隐含规则、库文件的处理等。通过阅读这份手册,开发者可以全面理解 GNU Makefile 的工作原理,从而高效地编写和管理复杂的构建系统。
2017-11-07 上传
2016-11-30 上传
2018-09-18 上传
2019-11-07 上传
2023-02-13 上传
2021-05-27 上传
2024-11-19 上传
xujialong1215
- 粉丝: 8
- 资源: 9
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析