在我的 Makefile 中调用 GREP 的两种方式有什么区别吗?我有什么理由应该使用其中之一?两者似乎产生相同的结果。
define GREP
$(word 3,$(shell echo "#define FOO 0xfff00100"))
endef
all:
@echo $(GREP)
@echo $(call GREP)
您使用它的方式没有区别。但是,如果您的 GREP 宏是一个带有参数的函数,则必须使用 $(call) 将参数传递给它。例如:
define GREP
$(shell grep $1 $2)
endef
FOO:=$(call GREP,abc,words.txt)
这导致$1
替换为“abc”,并且$2
与“words.txt”。
请参阅此处有关用户定义函数的 GNU make 手册的更多信息:http://www.gnu.org/software/make/manual/make.html#Call-Function http://www.gnu.org/software/make/manual/make.html#Call-Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)