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

Linux下构建Internet Computer Rust Canister编译失败

解决Linux下构建IC Rust Canister时cargo build链接错误问题

问题重现

执行以下命令创建IC Rust项目并构建时失败:

dfx new hello --type rust
cd hello
cargo build

错误核心信息:

error: linking with `cc` failed: exit status: 1
= note: /usr/bin/ld:/tmp/rustcWfyFge/list:3: syntax error in VERSION script
collect2: error: ld returned 1 exit status

解决方案

1. 使用dfx进行构建(推荐)

IC的Rust Canister不是普通Linux可执行程序,必须通过dfx工具处理目标平台的编译配置,直接用cargo build不符合IC构建规范。执行:

dfx build

2. 临时跳过版本脚本(仅用于本地调试)

若需用cargo build做代码调试,可通过设置RUSTFLAGS跳过版本脚本生成:

RUSTFLAGS="--no-version-script" cargo build

注意:此方法仅适用于本地代码验证,最终部署必须使用dfx build。

3. 更新系统binutils版本

错误源于系统GNU ld版本过旧(如CentOS/RHEL 7默认的2.25版本),对Rust生成的版本脚本语法支持不足。更新到2.30以上版本即可解决:

  • CentOS/RHEL 7使用devtoolset:
yum install devtoolset-9-binutils -y
scl enable devtoolset-9 bash
  • Debian/Ubuntu直接更新:
apt update && apt install binutils -y

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:25:16