在makefile中扩展

时间:2013-07-17 16:13:05

标签: makefile expand

在makefile文件的上下文中,我经常在文档/论坛中看到,虽然它很少被定义,但扩展的术语很多。在谈论makefile时,扩展变量或参数究竟是什么意思?

1 个答案:

答案 0 :(得分:1)

扩展字符串意味着用字符串中的变量或函数调用(例如$(NAME))替换对这些事物的值的引用。

考虑:

FOO = a b c
BAR = $(FOO) d e
BAZ = $(BAR) f g

BAZ的值为$(BAR) f g。如果您尝试使用

$(info $(BAZ))

然后Make展开变量,也就是说它用$(BAZ)的值替换BAZ

$(info $(BAR) f g)

然后$(BAR),其值为BAR

$(info $(FOO) d e f g)

然后$(FOO),其值为FOO

$(info a b c d e f g)

并且没有任何东西可以展开它执行info功能并打印出“a b c d e f g”。

请注意,有些内容会扩展变量而其他内容则不会。例如,作业BAR = $(FOO) d e 会扩展右侧的$(FOO)。另一种分配BAR := $(FOO) d e