如何使用在 make 目标中定义的变量
.PHONY: foo
VAR_GLOBAL=$(shell cat /tmp/global)
foo:
echo "local" > /tmp/local
VAR_LOCAL=$(shell cat /tmp/local)
echo ${VAR_GLOBAL}
echo ${VAR_LOCAL}
Run Code Online (Sandbox Code Playgroud)
这是执行输出:
$ echo global > /tmp/global
$ make foo
echo "local" > /tmp/local
VAR_LOCAL=local
echo global
global
echo
Run Code Online (Sandbox Code Playgroud)
正如@KelvinSherlock 指出的,这是另一个问题的重复
这是我的问题的具体解决方案:
.PHONY: foo
VAR_GLOBAL=$(shell cat /tmp/global)
foo:
echo "local" > /tmp/local
$(eval VAR_LOCAL := $(shell cat /tmp/local))
echo ${VAR_GLOBAL}
echo ${VAR_LOCAL}
Run Code Online (Sandbox Code Playgroud)