【发布时间】:2016-12-20 00:37:25
【问题描述】:
我在makefile中有这样的
target1:
export var1=test
$(MAKE) target2
target2:
echo $(var1)
这是空的
我有其他依赖,所以我想在第一个目标中设置变量,然后所有子依赖项都应该能够访问它
编辑:
.ONESHELL:
target1:
export var1=test
echo $(var1)
输出
make target1
export var1=test
echo
【问题讨论】:
-
根据gnu.org/software/make/manual/html_node/…,您所拥有的是正确的。请发布一个最小的、完整的、可验证的 Makefile 来演示您遇到的问题。
-
$(var1)是 make 变量,而不是环境变量。你想让echo $${var1}工作吗? -
@WilliamPursell 抱歉,这是我的错误,它不起作用,我尝试了所有以
echo blank的形式出现的东西。如果我回显 $${var1} 那么它也是空的 -
@WilliamPursell 使自动导入环境变量。
-
@user657267,是的,但是在 make 中分配一个变量不会导致该变量在环境中。
标签: linux bash makefile gnu-make