【问题标题】:How to save make argument in a variable如何将make参数保存在变量中
【发布时间】:2020-02-05 15:56:23
【问题描述】:

我正在开发一个 (GNU) Makefile,需要将参数保存在一个变量中。 就像如果我给出命令make projectX,那么我需要将projectX 分配给某个变量。

我试着像这样分配projectX,假设参数1是projectX

PRODUCT := "$1"

但这不起作用。

在变量中分配 make 参数的最佳方法是什么?

【问题讨论】:

    标签: makefile gnu-make target


    【解决方案1】:

    你也可以在make命令行中赋值变量:

    make PRODUCT=bla
    

    常用于debug/release builds

    make # builds debug version
    make MODE=release # builds release version
    

    【讨论】:

      【解决方案2】:

      来自GNU make manual

      Make 会将特殊变量 MAKECMDGOALS 设置为您在命令行中指定的目标列表。如果命令行上没有给出目标,则此变量为空。请注意,此变量应仅在特殊情况下使用。

      请注意,通常您会/应该/必须使用 $@ 来引用规则的目标。

      【讨论】:

      • 还有$(MAKEFLAGS),它包含所有其他参数(即标志而不是标记)。
      • 记住MAKECMDGOALS 是一个列表,可能是空的(如果没有提供目标)或有多个目标(如make clean projectX)。因此,虽然答案是正确的,但我宁愿使用带变量的方法来减少棘手的场景。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 2020-11-22
      • 2020-08-09
      • 1970-01-01
      • 2021-10-10
      相关资源
      最近更新 更多