GNU make中文手册:规则与后缀详解

需积分: 9 76 下载量 85 浏览量 更新于2024-08-08 收藏 1.29MB PDF 举报
"后缀规则-boost.asio c++网络编程(中文版)pdf" 这篇文档主要介绍了GNU Makefile的相关知识,包括缺省规则和后缀规则。这些是编写Makefile时的重要概念,用于自动化编译和构建过程。 9.6 缺省规则 在Makefile中,缺省规则是在没有明确规则或隐含规则重建目标文件时使用的规则。这种规则通过百分号(%)的万用规则或者伪目标`.DEFAULT`来定义。例如,`%:: touch $@`会为所有找不到重建命令的.c文件创建一个空文件。而`.DEFAULT`则可以用来定义一个默认操作,如`touch $@`,即创建一个空的目标文件。此外,缺省规则还可以用于加载或重载其他Makefile。 9.7 后缀规则 后缀规则是Makefile中的一种老式方法,用于定义隐含规则。在新版本的make中,模式规则更受推荐,因为它们更为清晰。尽管如此,后缀规则仍被保留以保持向后兼容。后缀规则分为两种类型:双后缀和单后缀。 - 双后缀规则如`.o`和`.c`,匹配所有目标文件后缀为指定后缀的文件,并将目标文件的后缀替换为依赖文件的后缀。 - 单后缀规则,如`.c`,匹配任何文件,依赖文件名是在目标文件名后追加源文件后缀。 此外,文档还涵盖了 GNU Make 的其他基础概念,如: 1. Makefile的基本结构和内容,包括变量、规则和工作流程。 2. 如何指定变量,以及自动推导规则,比如自动识别源文件和编译目标之间的关系。 3. Makefile的命名、包含和重建,以及如何指定额外的Makefile。 4. 解析Makefile的过程,包括变量取值、条件语句和规则定义。 5. 文件名通配符的使用,如`*`和`?`,以及相关的函数如`wildcard`。 6. 目录搜索,通过`VPATH`变量和`vpath`指令进行。 7. 伪目标,如`.PHONY`,用于强制执行规则,即使目标已经存在。 8. 强制目标,没有命令或依赖的规则,通常用于清理操作。 9. 多目标规则,允许一个规则更新多个目标。 10. 静态模式规则,提供更灵活的匹配方式,可以替代部分后缀规则。 这份文档深入浅出地讲解了Makefile的编写技巧和使用方法,对于C++程序员尤其是使用boost.asio进行网络编程的开发者来说,理解并掌握这些规则是编写高效构建脚本的关键。