具有多个目标的Makefile规则,可进行单次调用

杰斯珀·马蒂森(Jesper Matthiesen)

根据gnu make文档,如果规则通过一次调用生成多个目标(例如,使用执行多个输出文件的工具的配方),则可以使用'&:'规则语法来告知make。但是,当在多个规则中具有多个(但唯一)目标时,使用此语法时,我会收到有关目标“&”的警告。好像在把&号当作目标名称而不是成为目标先决条件分隔符的一部分一样。

在我最初的项目中,我有两个具有多个目标的规则,以及一个通过单个语句/工具生成这些目标的方法对于这两个规则,目标都是唯一的。我创建了以下简单示例来演示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

在上述Windows上运行make产生的警告:

Makefile:17:警告:覆盖目标“&”的配方

Makefile:13:警告:忽略目标'&'的旧配方

为什么要抱怨目标“&”?

克里斯·多德

您正在使用的GNU make旧版本不了解&:规则,因此只能将其&视为文件名。使用make --version看看你正在运行的版本升级是较早的是4.3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用于调用具有多个目标的make的Makefile

单次事件可进行多个转换

通过迭代变量创建具有多个目标的规则

Terraform 创建具有多个目标的 Cloudwatch 规则

具有多个目标的Makefile:MAKECMDGOALS优惠待遇

Makefile 没有针对目标的规则

GNU Makefile-具有多个具有一个依赖关系的目标的模式规则将忽略除第一个目标以外的所有目标

如何处理具有多个有序目标的并行make调用

具有多个目标的iOS Notification Service Extension永远不会调用扩展方法

具有多个输入和目标的 Tensorflow 数据集

避免具有多个目标的重复CMake代码

具有多个渲染目标的 WebGL readPixels

Makefile中以。开头的目标的含义是什么,它与后缀规则有何不同/相似?

Makefile 链一团糟:没有制定目标的规则

匹配Makefile目标的不同/多个部分

没有制定目标的规则 - Makefille

Makefile中所有目标的行为

从具有多个引用游标的 Hibernate 调用存储过程

具有多个目标和依赖项组合的 Makefile

目标C到具有多个目标的Swift头文件

GNU Makefile-多个目标的通用Makefile

一次调用sed即可进行多次编辑

具有多维输出目标的LSTM

具有GPUImageBuffer目标的GPUImagePicture?

具有动态目标的 WriteToBigQuery

有多个目标时,如何在Makefile规则中的字符串中添加后缀?

Makefile目标被调用两次

Makefile:将多个具有相同前缀的目标合并为一个目标

具有多个输出目标的Puppet开发套件测试单元