多行变量中导出的含义是什么

时间:2014-02-06 09:17:15

标签: linux makefile gnu-make

这个多行变量中export的含义是什么?

在这个例子中,即使我命令export foo或不命令,{ 输出是“欢迎”。

define foo  
echo welcome
endef
export foo
all:
      @$(foo)

1 个答案:

答案 0 :(得分:1)

顶级make的变量值可以通过显式请求通过环境传递给sub-make(子目录makefile)。 这些变量在sub-make中定义为默认值。

始终导出特殊变量SHELL和MAKEFLAGS(除非您取消导出它们)。

如果要将特定变量导出到子品牌,请使用export指令,如下所示:

export variable

如果要阻止导出变量,请使用unexport指令,如下所示:

unexport variable