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

Makefile变量添加前导空格不生效,该如何正确实现?

问题原因

你给出的写法不生效是因为Makefile在处理直接赋值的变量时,会自动截断值首尾的空白字符,你两次对SPACE赋值的操作最终得到的都是空值,无法生成需要的前导空格。

正确实现方式

用两个空变量作为边界,把需要的空格包裹在两个空变量中间,就能保留住空格字符:

# 先定义空变量作为边界
NULL :=
# 两个NULL中间的空格会被完整保留
SPACE := $(NULL) $(NULL)
VIU_DIAG_SW_VERSION := $(SPACE)AJ

如果需要多个连续前导空格,只需要调整两个NULL中间的空格数量即可。

效果验证

你可以添加如下测试规则验证结果:

test:
	@echo "|$(VIU_DIAG_SW_VERSION)|"

执行make test后输出为| AJ|,可以看到AJ前的前导空格已经生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:36:04