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 过程。
例子:对比下面的两个示例的输出结果。