根据gnu make 文档,如果规则通过单个调用生成多个目标(例如,使用具有多个输出文件的方法执行工具的配方),您可以使用“&:”规则语法来告诉 make。使用此语法时,我收到有关目标“&”的警告,但是,当多个规则中有多个(但唯一的)目标时。好像错误地将与号作为目标名称而不是成为目标-先决条件分隔符的一部分。
在我的原始项目中,我有两个具有多个目标的规则和一个从单个 statement/tool 生成这些目标的配方。两个规则中的每一个的目标都是唯一的。我创建了以下简单示例来演示 make 生成的警告:
all: file_abbc
.PHONY: all clean
clean:
del /Q file_*
file_abbc: file_ab file_bc
copy file_ab+file_bc file_abbc
file_ab file_bc &: file_a file_b file_c
copy file_a+file_b file_ab
copy file_b+file_c file_bc
file_a file_b file_c &: content
copy content file_a
copy content file_b
copy content file_c
Run Code Online (Sandbox Code Playgroud)
在上面的 Windows 上运行 make 的警告:
Makefile:17: 警告:覆盖目标“&”的配方
Makefile:13: 警告:忽略目标“&”的旧配方
为什么 make 抱怨目标 '&' ?
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |