【问题标题】:What does the Makefile symbol $= mean?Makefile 符号 $= 是什么意思?
【发布时间】:2018-10-25 18:07:04
【问题描述】:

我搜索了 Make 和在线论坛的文档。我还搜索了 Bash 的文档。也许我错过了什么。

我有一个包含

的makefile
BUILD_SYSTEM :=$= build/make/core
BUILD_SYSTEM_COMMON :=$= build/make/common
include $(BUILD_SYSTEM_COMMON)/core.mk

$= 是什么意思?

【问题讨论】:

    标签: bash makefile gnu-make


    【解决方案1】:

    你没有说你使用的是什么版本的 make,所以我假设一个标准的 POSIX 兼容版本,比如 GNU make。

    在 makefile 中,$x 表示任何单个字符 x 表示扩展名为 x 的变量,除了极少数例外:$$ 扩展为单个 $$(${表示变量名的开始。可能还有其他一些特殊的单个字符。

    但除此之外,任何字符都可以是有效的变量名。所以$= 扩展为变量= 的值,就像$a 扩展为变量a 的值一样。这可能很难设置,因为只需使用:

    = = foo
    

    行不通。但是您可以使用另一个变量从 make 解析器中隐藏等号:

    EQUAL = =
    $(EQUAL) = foo
    all: ; @echo $=
    

    然后:

    $ make
    foo
    

    【讨论】:

    • 是的,gnu-make。我包括了标签。
    猜你喜欢
    • 2013-01-26
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多