GNU make特殊目标解析 - .PHONY与.PRECIOUS
需积分: 33 70 浏览量
更新于2024-08-09
收藏 2.24MB PDF 举报
"Makefile的特殊目标包括 `.PHONY`, `.SUFFIXES`, 和 `.DEFAULT`。`.PHONY` 目标确保其依赖项的命令总是执行,不管同名文件是否存在。`.SUFFIXES` 定义了后缀规则中需要检查的文件后缀。`.DEFAULT` 目标用于重建那些没有明确规则的目标,当Make找不到重建某个依赖文件的规则时,会执行`.DEFAULT`中的命令。"
Makefile是构建自动化工具的核心,它定义了一系列规则来编译、链接和其他方式处理源代码文件。在Makefile中,有一些特殊的预定义目标,这些目标在GNU make中有特定的含义和功能。
`.PHONY` 目标是一个非常重要的概念,它告诉make即使存在同名的物理文件,也应执行相应的规则。当你有一个需要始终执行的命令,如清理工作目录的`clean`目标,你应该将其声明为`.PHONY`,以避免make因为发现已有名为`clean`的文件而跳过执行清理命令。
`.SUFFIXES` 目标则与后缀规则有关。后缀规则是一种隐式规则,它基于文件的扩展名来决定如何生成或更新文件。`.SUFFIXES`可以列出默认的后缀,例如`.c`到`.o`的转换,这样make就能自动推断出如何构建目标文件。你可以通过添加或删除后缀来改变默认的后缀列表。
`.DEFAULT` 是另一个特殊目标,它提供了默认的构建行为。当make找不到特定目标的规则时,会尝试执行`.DEFAULT`规则定义的命令。这通常用于处理那些未被明确定义的文件或者通用的构建步骤。
在更复杂的Makefile中,你可能会看到`.PRECIOUS`,它用于保护中间文件不被删除,或者`.INTERMEDIATE`来标记临时文件,这些文件在成功构建后通常会被清理。还有`.SILENT`来抑制命令的打印,以及`.IGNORE`让make忽略命令的执行结果,即使命令失败也不影响构建过程。
编写Makefile时,理解这些特殊目标能帮助你创建更高效、更可靠的构建流程。通过合理利用这些特性,可以减少手动干预,提高自动化程度,并确保每次构建的一致性和可靠性。
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
2024-12-01 上传
勃斯李
- 粉丝: 51
- 资源: 3884
最新资源
- RedisMonitor-master_redis_
- TdxBak_20210521.rar
- Python库 | jerryExcel-1.0.1-py3-none-any.whl
- jest:练习开玩笑地进行测试
- xmlunit-core-2.9.0.zip
- 上市公司股价信息含量知情交易概率VPIN指标数据整理(2003-2023年)
- Grad-IO:研究生经验产业组织
- h4x0r:我保留脚本以完成挑战的地方
- Vulnnr:Vulnnr - 漏洞扫描器和 Mass Exploiter,专为渗透测试而创建
- 排序算法之堆排序算法:用C++语言实现堆排序算法
- prime_peer_db_02:继续对等数据库项目。 使用名称搜索并按升序和降序排序
- Python库 | jekyllnb-0.1.2-py2.py3-none-any.whl
- SubPub:适用于Python 3.x的SubscribePublish样式事件系统
- 基于Springboot的房屋租赁系统(源代码+论文+说明文档+PPT)-计算机专业精品毕业设计和课程设计
- PHP Threaded Discussion-开源
- wechat-three-level-master.zip