Makefile符号$ =是什么意思?

时间:2018-10-25 18:07:04

标签: bash makefile gnu-make

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

我有一个包含的文件

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

$=是什么意思?

1 个答案:

答案 0 :(得分:3)

您没有说您使用的是哪个版本的make,所以我假设使用的是POSIX兼容的标准版本,例如GNU make。

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

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

$a

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

a

然后:

= = foo