我有一个Makefile,如下所示:
....
ifeq ($(strip $(MY_LIB)), $(strip $(SH_LIB))
@echo "TRUE-$(MY_LIB) $(SH_LIB)"
......
else
@echo "FALSE-$(MY_LIB) $(SH_LIB)"
......
endif
......
有了这个我就陷入了问题。当它们两个具有相同的值时,它会进入其他地方。我确认了印刷品,它显示两者都有相同的字符串。 在根makefile中,
SH_LIB := display
即使MY_LIB正在显示,它总是转到其他部分并打印 FALSE - 显示屏显示。
经过大量的改动,我能够得到它。
....
ifeq ("strip $(MY_LIB)", "display")
@echo "TRUE-$(MY_LIB) $(SH_LIB)"
......
else
@echo "FALSE-$(MY_LIB) $(SH_LIB)"
......
endif
.....
在此更改后,它进入了TRUE。 有人可以解释一下吗?
修改 我已将相似的代码放在root make文件中,它完全正常工作。
答案 0 :(得分:0)
在您的第一个剪辑中,尝试删除逗号后ifeq
内的空格。您还错过了ifeq
中的结尾权限:
ifeq ($(strip $(MY_LIB)),$(strip $(SH_LIB)))
@echo "TRUE-$(MY_LIB) $(SH_LIB)"
......
else
@echo "FALSE-$(MY_LIB) $(SH_LIB)"
......
endif