根据此链接,似乎这两个条件都将被评估为相同的结果,那么它们之间有什么区别?
ifeq ($(foo),)
execute somethings
endif
和
ifndef foo
execute somethings
endif
ifdef / ifndef不扩展变量。
显示不同行为的示例:
bar =
foo = $(bar)
ifndef foo
$(info yes)
else
$(info no)
endif
ifeq ($(foo),)
$(info yes)
else
$(info no)
endif
输出:
no
yes
第一个看到值“ $(bar)”并失败。第二个扩展foo内部的变量,使其变为“”并通过。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句