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

Linux 在多行变量中导出的含义是什么,linux,makefile,gnu-make,Linux,Makefile,Gnu Make,在这个多行变量中,export的含义是什么 在本例中,即使i命令导出foo与否 输出为“欢迎” define foo echo welcome endef export foo all: @$(foo) 顶级make的变量值可以通过显式请求通过环境传递到子make(子目录makefile)。 这些变量在子生成中定义为默认值 特殊变量SHELL和MAKEFLAGS始终导出(除非取消导出它们) 如果要将特定变量导出到子品牌,请使用export指令,如下所示: 导出变量 如果要防止导

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

在本例中,即使i命令
导出foo
与否 输出为“欢迎”

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

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

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

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

导出变量

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


unexport变量

更多详细信息:make从其父环境接收的任何变量也会自动导出到其子环境。除此之外,还会导出makefile中标记为
export
的任何变量
SHELL
实际上是一种特殊情况,其行为略有不同。