如果我尝试从 makefile 中访问某些环境变量,则不会显示它们。我的应用程序创建一个环境变量 MACHTYPE,其值为“DELLMACHINE”。我想在 make 文件中使用 echo 命令打印这个值。这是代码
@echo $(MACHTYPE)
Run Code Online (Sandbox Code Playgroud)
执行上述命令后,将显示空字符串。
有趣的是,其他环境变量(例如 PATH)工作正常,但 MACHTYPE 显示为空字符串。有谁知道为什么会发生这种情况?
这是因为您尚未从 shell 导出该变量。普通 shell 变量仅对该 shell 有效,不会传递给 shell 启动的任何程序(如 make)。
如果您希望将变量添加到环境中并传递给程序,则必须export这样做;在 shell 中运行它或将其添加到 shell 初始化文件中:
export MACHTYPE=DELLMACHINE
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意,也可以分两步进行:
MACHTYPE=DELLMACHINE
export MACHTYPE
Run Code Online (Sandbox Code Playgroud)
然后,运行make,您将看到设置。
| 归档时间: |
|
| 查看次数: |
4187 次 |
| 最近记录: |