makefile - 您应该如何在包含的 Makefile 中使用 .PHONY?
问题描述
假设我有一组 Makefile 模块:
# foo.mk
rule1: prereq1
recipe1
和
# bar.mk
rule2: prereq2
recipe2
和一个主要的 Makefile:
# Makefile
include foo.mk
include bar.mk
应该.PHONY:
在每个单独的 .mk 文件中包含该文件中的虚假目标,还是应该有一些仅包含在主 Makefile 中的累积列表?
# foo.mk
TARGETS += rule1
...
# bar.mk
TARGETS += rule2
...
# Makefile
.PHONY: $(TARGETS)
我没有在GNU Make 文档或类似问题中找到任何相关内容。
解决方案
该声明
.PHONY: rule1
告诉 Make 它不应将“rule1”视为要构建的文件的名称。假设你把它放在Makefile
. 当您运行另一个 makefilefoo.mk
或包含它的 makefile 时会发生什么?
运行rule1
规则时,是否希望 Make 将其视为 PHONY 目标?如果您的答案不是“这取决于我使用的 makefile”,那么您应该在 makefile 中有定义规则的语句。
推荐阅读
- javascript - 如何在 JSON 中访问此对象
- c++ - “STD_OUTPUT_HANDLE”标识符的第一个实例未定义
- xml - 从列表或文件中查找单个字符串的每个实例并将其替换为另一个
- keycloak - Keycloak - 动态注册 URL
- angular - Angular - 在哪里导入材料项目
- python - 即使重新运行代码,如何在 python 中更新列表和字典?
- firebase - sequenceId 是重复的,我在 firebase 中使用增量
- sql - 可以同时使用 SELECT DISTINCT 和 GROUP BY 吗?
- ios - 解码 iPhone 拍摄的图片的 .AAE 文件中的调整数据
- c# - 如何使用值参数中的字符串在字典中查找值