makefile - 一个Makefile规则中的两个冒号是什么意思
问题描述
我知道规则语法应采用以下格式:
targets : prerequisites
recipe
…
但是,我在slave.mk中看到了下面的片段。
$(addprefix $(DEBS_PATH)/, $(SONIC_COPY_DEBS)) : $(DEBS_PATH)/% : .platform
$(HEADER)
$(foreach deb,$* $($*_DERIVED_DEBS), \
{ cp $($(deb)_PATH)/$(deb) $(DEBS_PATH)/ $(LOG) || exit 1 ; } ; )
$(FOOTER)
第一行有两个':'。为什么?
解决方案
这是静态模式规则的语法:
静态模式规则是指定多个目标并根据目标名称为每个目标构造先决条件名称的规则。它们比具有多个目标的普通规则更通用,因为目标不必具有相同的先决条件。它们的先决条件必须相似,但不一定相同。
这是静态模式规则的语法:
targets …: target-pattern: prereq-patterns … recipe …
该
targets
列表指定了规则适用的目标。
推荐阅读
- batch-file - 批处理循环并删除某些文件夹
- php - 在 Laravel 8 上更改公用文件夹
- python - 有什么更好的方法可以将列添加到 pandas.Series?
- javascript - 向多个 socketIds (socket.io) 发送数据,以及一点解释
- node.js - 将 Sql 查询转换为 Sequelize ORM
- google-chrome - 在 Chrome 扩展的内容脚本中加载远程 JS 脚本
- javascript - 尝试使用 PHP 重现 javascript b64_md5 函数,但结果不同
- amazon-iam - 列出权限边界 aws
- java - java并行流可以在单个线程中处理依赖任务吗
- c# - 在C#中打印DataGridView时如何计算单元格高度[有长文本]