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

为何Makefile的export会给变量额外添加一个`=`?

Makefile导出变量出现额外=的原因及解决方法

问题原因

你遇到的额外=是因为Make的变量展开机制导致的:

当你写export $(shell echo "truman=name")时,Make会先执行shell命令获取字符串truman=name,随后会对这个字符串中的Make变量进行展开。如果你的Make环境(或当前shell传递给Make的变量)中存在名为name的变量,且其值为=,那么truman=name会被展开为truman=name=——把变量name的值=替换进去后,最终导出的truman变量值就变成了name=,所以执行export命令时会看到truman="name="的输出。

另外,这种通过shell函数生成变量赋值语句的写法本身就多余,还容易触发意料之外的变量展开问题。

解决方法

直接在Makefile中显式定义并导出变量,绕过Make的变量展开问题:

export truman=name

env:
    export

执行make env后,就能得到正确的export truman="name"输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 10:39:51