gpt4 book ai didi

makefile - 在 Makefile 中使用多个 %

转载 作者:行者123 更新时间:2023-12-02 09:12:13 25 4
gpt4 key购买 nike

我必须通过命令(fa2fb)将一组文件(假设格式fa)转换为另一种格式(fb)。每个目标fb仅依赖于一个fa文件。

数据结构的格式如下:

来源:

./DATA/L1/fa/L1.fa
./DATA/L2/fa/L2.fa
...
./DATA/Ln/fa/Ln.fa

目标:

./DATA/L1/fb/L1.fb
./DATA/L2/fb/L2.fb
...
./DATA/Ln/fb/Ln.fb

如何用make实现它?

我已经尝试过了,但当然没有成功:

./DATA/%/fb/%.fb :  ./DATA/%/fa/%.fb

@fa2fb $< $@

有没有不改变数据目录的简单解决方案?

非常感谢!

最佳答案

使用secondary expansionsubst function创建一个规则,其中先决条件被构造为目标名称的更复杂的函数:

.SECONDEXPANSION:
DATA/%.fb: $$(subst fb,fa,$$@)
@fa2fb $< $@

请注意,此方法假设 fb 不会出现在文件名中的任何其他位置(如果所有文件名的格式均为 DATA/Ln/fb/Ln.fb,则该情况成立) ,对于某个整数n)。

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

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