问题是,furl
没有从file
变量中获得指定值。如果我使用任何纯文本而不是$$file
,它都有效。我不知道为什么这不起作用。
生成文件:
test:
@for file in $(shell pwd)/demo/*; do \
$(eval furl := $(shell echo $$file)) \
echo $(furl); \
done
我很确定这应该很容易修复,但我找不到解决方案。有什么想法吗?
我正在使用最新的lubuntu操作系统。
答案 0 :(得分:2)
问题是$file
仅存在于执行for
循环的shell中,因此make
看不到变量。
如何修复它取决于你实际想做什么。
答案 1 :(得分:2)
你在配方中搞乱了shell和Make变量。我认为furl
应该是shell变量。像这样:
test:; @for file in demo/*; do \
furl="`echo $$file`"; \
echo "$$furl"; \
done
通常,您不应在配方中指定Make变量。明显的例外是$(foreach)
。