Makefile中export的用法

在实际的项目中,总不会是只有一个 Makefile 文件,我们会在 Makefile 中调用另外的 Makefile 文件,呈现出 Makefile 的层级结构。

上层 make 过程要将所执行的 Makefile 中的变量传递给子 make 过程,需要明确地指出。

在 GNU make 中,实现此功能的指示符是 export。当一个变量使用 export 进行声明后,变量和它的值将被加入到当前工作的环境变量中,以后在 make 执行的所有规则的命令都可以使用这个变量。

而当没有使用指示符 export 对任何变量进行声明的情况下,上层 make 只将那些已经初始化的环境变量(在执行 make 之前已经存在的环境变量)和使用命令行指定的变量(如命令make CFLAGS +=-g 或者 make –e CFLAGS +=-g)传递给子 make 过程。

例子:对比下面的两个示例的输出结果。
Makefile中export的用法

Makefile中export的用法