任何人都可以清楚地解释变量赋值在 Makefile 中是如何工作的。
和有什么区别:
VARIABLE = value VARIABLE ?= value VARIABLE := value VARIABLE += value
我已经阅读了GNU Make 手册中的部分,但对我来说仍然没有意义。
VARIABLE = value
一个变量的正常设置,但在该value字段中提到的任何其他变量都在使用该变量时使用它们的值递归扩展,而不是它在声明时的值
value
VARIABLE := value
通过内部值的简单扩展来设置变量 - 其中的值在声明时扩展。
VARIABLE ?= value
仅当变量没有值时才设置变量。value总是在VARIABLE被访问时评估。它相当于
VARIABLE
ifeq ($(origin VARIABLE), undefined) VARIABLE = value endif
有关更多详细信息,请参阅文档。
VARIABLE += value
将提供的值附加到现有值(如果变量不存在,则设置为该值)