Makefile中语句FOO := BAR=$(BAZ)里第二个‘=’的含义是什么?
Makefile语句
FOO := BAR=$(BAZ)的含义解析 核心逻辑拆解
这条语句是给变量FOO做立即赋值,可以拆成两部分理解:
:=的作用:这是Makefile的立即赋值运算符,和延迟赋值的=不同,它会在定义FOO的当下,直接展开右侧表达式并确定FOO的最终值,而非等到FOO被调用时才解析。- 右侧的
BAR=$(BAZ):这里的第二个=只是普通字符,不属于Makefile的赋值语法。它的作用是让FOO的值包含字符串BAR=,再拼接上变量BAZ当前的取值。
实际示例
假设当前BAZ的值为test,执行这条语句后:
FOO的最终值就是BAR=test
后续即使修改BAZ的取值,FOO的值也不会变化,因为:=是立即赋值,已经在定义阶段固定了FOO的内容。
内容的提问来源于stack exchange,提问作者Mossmyr
相关产品推荐
相关产品推荐

