Makefile字符串比较#Ifeq
在我的一个项目中,我面临以下错误。我有两个环境,我正在观察两个环境之间的Makefile字符串比较#Ifeq,makefile,Makefile,在我的一个项目中,我面临以下错误。我有两个环境,我正在观察两个环境之间的ifeq功能差异 在第一个环境中,下面的代码运行良好 FIRST = 1 ifeq ( ($FIRST),1 ) ENABLE_CODE+= -D'ENABLE_PROGRAM' endif 相同的代码在第二个环境中不起作用。它只有在我修改代码时才起作用 ifeq ( ($FIRST),1) 到 有人能帮我把这件事整理一下吗?正如评论中所说的,你应该把首先用引号括起来:`$(首先)。注意,Makefile和B
ifeq
功能差异
在第一个环境中,下面的代码运行良好
FIRST = 1
ifeq ( ($FIRST),1 )
ENABLE_CODE+= -D'ENABLE_PROGRAM'
endif
相同的代码在第二个环境中不起作用。它只有在我修改代码时才起作用
ifeq ( ($FIRST),1)
到
有人能帮我把这件事整理一下吗?正如评论中所说的,你应该把
首先
用引号括起来:`$(首先)。注意,Makefile和Bash具有不同的语法。Makefile需要在变量bash-not周围加上四舍五入引号
另外,请删除ifeq
中的额外空格。注意:在某些情况下,命令ifeq($(第一),1)
可能会与非管道行进行比较,并且由于额外的空格而失败:它可能会与'1'
进行比较,而不是简单的'1'
所以makefile看起来像
FIRST = 1
ifeq ($(FIRST),1)
ENABLE_CODE += -D'ENABLE_PROGRAM'
endif
all:
@echo FIRST $(FIRST)
@echo ENABLE_CODE $(ENABLE_CODE)
不应该是$(第一个)吗?您使用的是哪个版本的Make?
FIRST = 1
ifeq ($(FIRST),1)
ENABLE_CODE += -D'ENABLE_PROGRAM'
endif
all:
@echo FIRST $(FIRST)
@echo ENABLE_CODE $(ENABLE_CODE)