gpt4 book ai didi

makefile - GNU Makefile 变量赋值 =、?=、:= and +=? 之间有什么区别

转载 作者:行者123 更新时间:2023-12-03 03:52:34 33 4
gpt4 key购买 nike

任何人都可以清楚地解释变量分配在 Makefile 中的实际工作原理吗?

有什么区别:

 VARIABLE = value
VARIABLE ?= value
VARIABLE := value
VARIABLE += value

我已阅读 section在GNU Make的手册中,但它对我来说仍然没有意义。

最佳答案

惰性设置

VARIABLE = value

变量的正常设置,但 value 字段中提到的任何其他变量都会使用该变量使用时的值(而不是声明时的值)递归扩展

立即设置

VARIABLE := value

通过简单扩展内部值来设置变量 - 其中的值在声明时扩展。

如果不存在则延迟设置

VARIABLE ?= value

仅当变量没有值时才设置该变量。当访问 VARIABLE 时,value 始终会被求值。相当于

ifeq ($(origin VARIABLE), undefined)
VARIABLE = value
endif

请参阅documentation了解更多详情。

追加

VARIABLE += value

将提供的值附加到现有值(如果变量不存在,则设置为该值)

关于makefile - GNU Makefile 变量赋值 =、?=、:= and +=? 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/448910/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com