Makefile 通过export传递变量

在上一节中,我们通过命令行的形式给一个Makefile传递变量,除此之外,我们还可以通过export命令给Makefile传递变量:

.PHONY:all
all:
    @echo "WEB = $(WEB)"

在上面的Makefile中,在命令行中打印变量WEB的值,但WEB在Makefile中并没有定义,但我们可以通过export传递给它:

wit@pc:/home/makefile/demo# make
WEB = 
wit@pc:/home/makefile/demo# export WEB=zhaixue.cc
wit@pc:/home/makefile/demo# make
WEB = zhaixue.cc

shell环境下使用export命令,就相当于将WEB变量声明为系统环境变量。当make解析Makefile时,会自动引入系统环境变量,包括刚刚声明的WEB,所以我们就可以在Makefile中看到WEB变量的打印值了。

《Makefile工程实践》视频教程,一线开发工程师独家录制,网上首家讲解Makefile的实战课程。从零开始,教你一步一步编写一个工程项目的Makefile,支持使用第三方静态库、动态库,支持指定模块或目录编译生成静态库、动态库,赠送企业级的Makefile模板,学完即可拿来使用,投入项目开发实战,具备独立开展项目开发和管理的能力。详情请点击淘宝链接:Linux三剑客