You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Makefile中将命令行参数‘stefan’存入变量?

实现方法

有两种常见的方式可以实现你的需求,具体如下:

方法一:利用MAKECMDGOALS提取参数

Makefile的内置变量$(MAKECMDGOALS)会包含你在命令行指定的所有目标。你可以通过文本处理函数,从里面提取出第一个目标之外的内容作为自定义变量:

# 提取命令行中第一个目标之后的所有内容到NAME变量
NAME := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))

# 将提取出的参数声明为伪目标,避免make尝试查找对应文件
.PHONY: $(NAME)

foobar:
	@echo "要使用的参数是:$(NAME)"
	# 在这里写后续需要用到NAME变量的命令

执行make foobar stefan时,NAME变量就会被赋值为stefan。如果只需要提取单个参数(而非多个),可以把wordlist换成word:

NAME := $(word 2,$(MAKECMDGOALS))

方法二:通过命令行变量赋值(更直观)

如果你能接受调整命令行的写法,可以直接在执行时显式赋值变量,这种方式更清晰不易出错:

make foobar NAME=stefan

对应的Makefile里直接使用$(NAME)即可:

foobar:
	@echo "要使用的参数是:$(NAME)"

内容的提问来源于stack exchange,提问作者Stefan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:45:35