gpt4 book ai didi

makefile - 在 patsubst 中使用 % 两次

转载 作者:行者123 更新时间:2023-12-05 03:00:00 25 4
gpt4 key购买 nike

我想为每个输入词生成两个输出词,它们是连续的,并对它们应用 patsubst

我想要的非工作原型(prototype):

$(patsubst %.o,%.a.o %.so.o,$(OBJ))

% 的第二个外观没有被替换,而是出现一个普通的 %

未给出所需顺序的工作版本:

$(patsubst %.o,%.a.o,$(OBJ)) $(patsubst %.o,%.so.o,$(OBJ))

例子:

输入:

foo.o bar.o

期望的输出:

foo.a.o foo.so.o bar.a.o bar.so.o

如何获得所需的输出?

最佳答案

join make 函数接受两个单词列表并将它们逐字连接起来。不完全是您想要的,因为 foo.a.ofoo.so.o 之间没有空格,但离它不远。

假设您确定某些字符串永远不会成为您的文件名的一部分(例如 !!!),您可以组合替换引用(或等效的 patsubst) , joinsubst:

$(subst !!!, ,$(join $(OBJ:o=a.o!!!),$(OBJ:o=so.o)))

或者,甚至更简单,如果您确定 .a.o 不能成为文件基本名称的一部分:

$(subst .a.o,.a.o ,$(join $(OBJ:o=a.o),$(OBJ:o=so.o)))

关于makefile - 在 patsubst 中使用 % 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57375778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com