Makefile 在make中指定变量

Makefile 在make中指定变量,makefile,variable-assignment,gnu-make,Makefile,Variable Assignment,Gnu Make,我在makefile中有以下内容 ifneq ($(GIT_INFO),) $(info $(GIT_INFO)) GIT_INFO:=Changed $(info $(GIT_INFO)) endif 其中,我的愿望是,如果在命令行中将GIT_INFO设置为某个值,则其值将填充所需的字符串(细节不重要)。我添加了$(info..)行来验证这段代码是否正在执行,它确实在执行,但是GIT\u info的值没有改变,也没有改变。为什么不呢?我在命令行上传递GIT_INFO=true,两个位置都从

我在makefile中有以下内容

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
其中,我的愿望是,如果在命令行中将
GIT_INFO
设置为某个值,则其值将填充所需的字符串(细节不重要)。我添加了
$(info..)
行来验证这段代码是否正在执行,它确实在执行,但是
GIT\u info
的值没有改变,也没有改变。为什么不呢?我在命令行上传递
GIT_INFO=true
,两个位置都从

如果使用命令参数设置了变量…,则会忽略makefile中的普通赋值。如果 您希望在makefile中设置变量,即使该变量已设置 通过命令参数,可以使用override指令

只需添加
覆盖

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif

如果使用命令参数设置了变量…,则会忽略makefile中的普通赋值。如果 您希望在makefile中设置变量,即使该变量已设置 通过命令参数,可以使用override指令

只需添加
覆盖

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif

您必须使用
覆盖

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif

您必须使用
覆盖

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif