【问题标题】:Read value of environment variables in makefile读取makefile中环境变量的值
【发布时间】:2015-03-27 08:48:06
【问题描述】:

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

@echo $(MACHTYPE)

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

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

【问题讨论】:

  • 提示:在这些情况下,我总是使用--warn make 参数(--warn-undefined-variables 的缩写)。

标签: gnu-make makefile


【解决方案1】:

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

如果你想将变量添加到环境中并传递给程序,你必须export它;在你的 shell 中运行它或将它添加到你的 shell 初始化文件中:

export MACHTYPE=DELLMACHINE

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

MACHTYPE=DELLMACHINE

export MACHTYPE

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

【讨论】:

    【解决方案2】:

    make 可以从 cmd 行给出变量。

    生成文件

    all:
        @echo $(MACHTYPE)
    

    然后运行 make MACHTYPE=DELLMACHINE.

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 2017-03-17
      • 2018-01-09
      • 2014-07-21
      • 2015-07-17
      • 2016-12-10
      • 2012-05-16
      • 1970-01-01
      • 2017-03-06
      相关资源
      最近更新 更多