GNU make特殊目标解析 - .PHONY与.PRECIOUS
需积分: 33 81 浏览量
更新于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时,理解这些特殊目标能帮助你创建更高效、更可靠的构建流程。通过合理利用这些特性,可以减少手动干预,提高自动化程度,并确保每次构建的一致性和可靠性。
2019-09-04 上传
2018-08-31 上传
2021-06-08 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
勃斯李
- 粉丝: 50
- 资源: 3917
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手