Makefile:存储'make'后面的参数(即第二个命令行参数)不起作用



我正在尝试将命令行中传递的第二个参数(即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(。

相关内容

最新更新