makefile中的几种等号赋值(=、:=、?=)
作者:野牛程序员:2024-01-03 15:51:20makefile|cmake阅读 2770
= 表示基本的变量赋值。使用等号赋值时,变量的值将在整个Makefile中都有效。
:= 表示简单的赋值。使用冒号等于赋值时,变量的值将在赋值时展开,而后续的使用将保持不变。
?= 表示如果变量未被赋值过,则进行赋值。如果变量已经有值(包括空值),那么?= 不会改变它的值。
这些等号赋值在Makefile中用于定义变量,具体选择取决于变量的使用和赋值的时机。
# 使用等号赋值 FOO = bar all: @echo $(FOO) # 使用冒号等于赋值 VAR := initial_value TARGET := $(VAR) VAR := new_value all: @echo $(TARGET) # 使用问号等于赋值 MY_VAR ?= default_value all: @echo $(MY_VAR)
在上述示例中,等号(=)用于基本的变量赋值,冒号等于(:=)用于在赋值时展开变量,而问号等于(?=)用于仅在变量未被赋值时进行赋值。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892