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

如何从命令行传递变量值至Makefile,适配指定命令调用格式

解决Makefile通过--传递参数给目标的问题

在make里,--的作用是把后面的参数直接传给目标的执行命令,而不是让make自己解析。针对你的需求,有两种修改方式:

方式1:直接把参数拼到执行命令里

直接改execute目标的定义,让它自动带上你通过--传递的参数:

.PHONY: execute
execute:
	execute -config configuration.json $(filter-out $@,$(MAKECMDGOALS))

这么改之后,你执行make execute -- -mode stress时,$(filter-out $@,$(MAKECMDGOALS))会自动提取出-mode stress,最终执行的命令就是execute -config configuration.json -mode stress,完全符合你的要求。

方式2:兼容两种传参方式

如果你还想同时支持make execute mode=stress这种直接给变量赋值的写法,可以这么写:

.PHONY: execute
execute:
	execute -config configuration.json -mode $(or $(mode),$(word 2,$(filter-out $@,$(MAKECMDGOALS))))

这里$(or ...)会优先用你通过mode=stress赋值的变量值,如果没有的话,就从--传递的参数里提取stress这个值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:55:02