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