linux – 如何在make目标之间传递ENV变量

linux – 如何在make目标之间传递ENV变量,第1张

概述我在makefile中喜欢这个 target1: export var1=test $(MAKE) target2target2: echo $(var1) 这是空的 我有其他依赖项,所以我想在第一个目标中设置变量,然后所有子项依赖项应该能够访问它 编辑: .ONESHELL:target1: export var1=test 我在makefile中喜欢这个

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变量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1028115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存