在makefile中读取环境变量的值

时间:2015-01-28 12:39:05

标签: makefile gnu-make makefile-project

如果我尝试从makefile中访问它们,我的某些环境变量就不会显示出来。我的应用程序创建一个环境变量MACHTYPE,其值为“DELLMACHINE”。 我想在make文件中使用echo命令打印此值。这是代码

@echo $(MACHTYPE)

执行上述命令后,将显示空字符串。

有趣的是,其他环境变量(如PATH)工作正常,但MACHTYPE显示为空字符串。有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:3)

这是因为你没有从shell中导出变量。普通的shell变量仅对该shell有效,不会传递给shell启动的任何程序(如make)。

如果您希望将变量添加到环境并传递给程序,则必须export它;在shell中运行它或将其添加到shell init文件中:

export MACHTYPE=DELLMACHINE

如果您愿意,可以分两步完成:

MACHTYPE=DELLMACHINE

export MACHTYPE

然后,运行make,您将看到设置。

答案 1 :(得分:-2)

make可以从cmd行中提供变量。

生成文件

all:
    @echo $(MACHTYPE)

然后跑 make MACHTYPE=DELLMACHINE