如果我尝试从makefile中访问它们,我的某些环境变量就不会显示出来。我的应用程序创建一个环境变量MACHTYPE,其值为“DELLMACHINE”。 我想在make文件中使用echo命令打印此值。这是代码
@echo $(MACHTYPE)
执行上述命令后,将显示空字符串。
有趣的是,其他环境变量(如PATH)工作正常,但MACHTYPE显示为空字符串。有谁知道为什么会这样?
答案 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
。