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

Ubuntu下GNU Make无法展开环境变量的技术求助

解决GNU Make无法读取终端环境变量的问题

核心原因

直接运行settings.sh脚本时,变量仅在脚本自身的子shell中生效,不会传递到当前终端的shell环境,因此make进程无法读取到这些变量。

具体解决方法

  • 通过source/.命令加载脚本
    不要直接执行./settings.sh,改用以下命令将变量注入当前终端环境:

    source ./settings.sh
    # 或简写为
    . ./settings.sh
    
  • 验证变量状态
    加载脚本后,在终端执行以下命令确认变量生效:

    echo $TOOLCHAIN_PATH
    echo $TOOL_CC
    

    确认输出正确值后再运行make。

  • 备选:运行make时直接传递变量
    若不想修改当前shell环境,可在启动make时直接指定变量:

    TOOLCHAIN_PATH="/opt/armc7-eabihf-glibc/bin" TOOL_CC="arm_linux-gcc" make
    

    或者先导出变量再执行make:

    export TOOLCHAIN_PATH="/opt/armc7-eabihf-glibc/bin"
    export TOOL_CC="arm_linux-gcc"
    make
    

补充提示

GNU Make默认继承当前shell的环境变量,但变量需要处于已导出状态。如果你的settings.sh脚本里没有用export声明变量,即使source了脚本,子进程(如make)也无法继承。建议在脚本中添加export:

export TOOLCHAIN_PATH="/opt/armc7-eabihf-glibc/bin"
export TOOL_CC="arm_linux-gcc"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:22:06