gpt4 book ai didi

c - 为依赖扩展模式两次

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:16 24 4
gpt4 key购买 nike

是否可以将% 展开两次以获取依赖项名称?

我将项目分成几个部分,每个部分都在它自己的文件夹和同名文件中,例如

sections/first/first.c,sections/hello/hello.c

现在我想在另一个文件夹build中为每个部分构建一个目标;我想出了以下内容

SECTIONS = $(wildcard sections/*/*.c)
TARGETS = $(addprefix build/,$(notdir $(SECTIONS)))

$(TARGETS): build/%.c: sections/%/%.c
# do something

但是问题是 % 只扩展了一次,所以我以错误告终

make: *** No rule to make target 'sections/first/%.c', needed by 'build/first.o'.

有没有办法将%展开两次?

最佳答案

不可能让 % 展开不止一次。如果你需要这个,你必须做一些更花哨的事情:你可以使用 secondary expansioneval。例如,这应该有效:

.SECONDEXPANSION:
$(TARG) : build/%.c : source/$$*/$$*.c
@echo copy $< $@

如需更深入的讨论,您可以查看these blog posts .

关于c - 为依赖扩展模式两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34575589/

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