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

Windows交叉编译Rust到Linux遇once_cell编译错误求助

Windows下交叉编译Rust到Linux失败的解决方法

这不是once_cell的限制,核心原因是你缺少了交叉编译所需的环境配置步骤,以下是具体解决流程:

  • 添加目标平台的Rust工具链
    先通过rustup安装对应架构的编译目标:

    # 针对x86_64架构的EC2实例
    rustup target add x86_64-unknown-linux-gnu
    # 针对ARM架构的EC2实例
    rustup target add aarch64-unknown-linux-gnu
    
  • 安装交叉编译的C工具链
    Windows下需要对应架构的MinGW工具链来提供交叉编译的链接器:

    • 若使用MSYS2,打开MSYS2终端执行:
      # x86_64目标
      pacman -S mingw-w64-x86_64-gcc
      # aarch64目标
      pacman -S mingw-w64-aarch64-gcc
      
    • 若使用Chocolatey包管理器,执行:
      # x86_64目标
      choco install mingw --x86_64
      # aarch64目标
      choco install mingw --arm64
      
  • 配置Cargo指向交叉编译链接器
    在用户目录下创建或编辑.cargo/config.toml文件,添加对应目标的配置:

    # x86_64目标配置
    [target.x86_64-unknown-linux-gnu]
    linker = "x86_64-w64-mingw32-gcc"
    
    # aarch64目标配置(如果需要)
    [target.aarch64-unknown-linux-gnu]
    linker = "aarch64-w64-mingw32-gcc"
    

    注意:如果你的工具链可执行文件名不同(比如部分环境下是x86_64-linux-gnu-gcc),需要对应修改linker的值。

  • 重新执行编译
    执行带目标参数的编译命令(推荐加--release生成生产环境可执行文件):

    # x86_64目标
    cargo build --release --target=x86_64-unknown-linux-gnu
    # aarch64目标
    cargo build --release --target=aarch64-unknown-linux-gnu
    

如果仍有错误,检查工具链是否正确安装、环境变量是否包含工具链的路径,确保Cargo能找到指定的链接器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:01:05