【发布时间】:2015-01-25 00:09:27
【问题描述】:
我的 makefile 有:
debug:
W1 := foo bar cat
我想提取每个单词 foo、bar 和 cat 并得到如下输出:
v1=foo
v2=bar
v3=cat
我试过了:
W1 :=foo bar cat
v1 :=$(word 1, $$(W1))
v2 :=$(word 2, $$(W1))
v3 :=$(word 3, $$(W1))
debug:
@echo "${v1}"
@echo "${v2}"
@echo "${v3}"
没有按照我想要的方式工作。请帮忙
【问题讨论】:
-
为什么要使用双美元符号?这只是告诉 make 不要扩大价值,所以你肯定不会得到你想要的。使用
$(word 2,$(W1))等 -
此外,由于变量是 make(而不是 shell)变量,您可以在规则正文中使用
echo '${v1}'(或echo '$(v1)',这是我的偏好),而不是使用双引号。 -
@MadScientist,谢谢,单美元有效。感谢 Etan 的建议。
标签: makefile