target1: export var1=test $(MAKE) target2target2: echo $(var1)
这是空的
我有其他依赖项,所以我想在第一个目标中设置变量,然后所有子项依赖项应该能够访问它
编辑:
.OnesHELL:target1: export var1=test echo $(var1)
产量
make target1export var1=testecho解决方法 默认情况下,make会为每个配方调用一个新的shell环境,第一行的导出变量不在第二行的范围内.
您可以通过多种方式解决此问题:
使用make的export指令导出变量
target1: export var1 := testtarget1: $(MAKE) target2
使用make的命令行变量赋值
target1: $(MAKE) target2 var1=test
使用shell命令变量赋值
target1: var1=test $(MAKE) target2
将两个命令组合在一个配方中
target1: export var1=test; $(MAKE) target2
强制make将所有配方传递给同一个shell实例
.OnesHELL:target1: export var1=test $(make) target2总结
以上是内存溢出为你收集整理的linux – 如何在make目标之间传递ENV变量全部内容,希望文章能够帮你解决linux – 如何在make目标之间传递ENV变量所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)