理解makefile的重建与避免死循环
需积分: 12 100 浏览量
更新于2024-08-07
收藏 2.02MB PDF 举报
"这篇文档是关于`makefile`文件重建的详细解释,主要源自`GNUmake中文手册`,由徐海兵翻译整理。文档中详细阐述了`make`程序处理`makefile`的方式,以及如何避免不必要的`makefile`重建过程。"
在`makefile`的构建中,有时`Makefile`可能由其他文件如`RCS`或`SCCS`文件生成。当`make`读取`Makefile`时,它会检查是否需要根据规则更新这个文件。如果有明确或隐含的规则用于更新`Makefile`,`make`会先更新`Makefile`,然后再重新读取,确保使用的是最新版本。在读取所有`makefile`后,如果发现有更新,`make`会清空状态并再次读取,这个过程会持续直到所有`makefile`都是最新的。
在实际应用中,我们通常会明确指定`Makefile`,而不是让`make`自动重建它们。为了避免`make`在执行时尝试寻找重建`makefile`的隐含规则,可以设置一个空命令规则,以`Makefile`为目标。这样做可以防止`make`陷入无限循环,因为一个双冒号规则(没有依赖,只有命令行)更新`makefile`会导致`make`不断地重新读取和更新文件。
`make`在运行时,如果没有使用`-f`选项指定文件,它会尝试读取默认的`makefile`,如`GNUmakefile`、`makefile`或`Makefile`。如果默认的`makefile`不存在但可以通过隐含规则创建,`make`会自动生成并读取这个文件。
文档还涵盖了`make`的基本概念,如`Makefile`的结构、规则、变量、自动推导、包含其他`makefile`、条件语句等。规则部分详细讲解了规则的语法、依赖类型、通配符使用、目录搜索、伪目标、静态模式规则和双冒号规则等内容。
在编写`Makefile`时,理解这些概念和机制至关重要,因为它们决定了`make`如何构建和管理项目中的依赖关系,以及如何有效地编译和链接源代码。正确配置`Makefile`可以显著提高软件开发的效率。
2019-09-04 上传
2018-08-31 上传
2021-06-08 上传
2023-04-19 上传
2023-06-21 上传
2023-09-04 上传
2023-07-12 上传
2023-06-09 上传
2023-07-27 上传
![](https://profile-avatar.csdnimg.cn/973d12569ff8436fa2d4d8a98b238fbe_weixin_26712075.jpg!1)
赵guo栋
- 粉丝: 41
- 资源: 3901
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景