我正在尝试将命令行中传递的第二个参数(即make
之后的参数(存储在名为NAME
的变量中,然后使用它来做事。如果没有第二个参数,则NAME = a
.
为什么不起作用?
这是我Makefile
的片段:
NAME := $(shell $2)
ifeq ($(strip $(NAME)),)
$(NAME) = a
endif
# ... and do other things with NAME
它给了我这个错误:
*** empty variable name. Stop
您不能在make
中使用$1
(和类似(。
make
的参数是目标或选项,无法使用$1
访问。
该命令make foo
指示make
创建foo
目标。如果需要传递参数,您可以使用make param=foo
并且可以Makefile
访问${param}
变量(值为foo
(。