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

Mac环境构建aarch64-linux-android目标时ring v0.16.20编译失败求助

解决Mac下编译Rust到aarch64-linux-android时ring构建失败的问题

环境信息

  • 设备:Mac
  • Cargo.toml配置:
hyper={version="0.14.16",features=["full"]}
hyper-rustls = "0.24.1"
  • 构建命令:
cargo build --target aarch64-linux-android --release
  • 错误信息:
failed to run custom build command for `ring v0.16.20`
Caused by:
  process didn't exit successfully:`/Users/laiyi/rust/android_demo/target/release/build/ring-2d5afaebac3dba3f/build-script-build` (exit status: 101)
  • 错误截图:
    ring构建失败截图

解决步骤

1. 配置Android NDK环境

ring交叉编译依赖Android NDK工具链,需确保NDK安装并配置到位:

  • 下载安装兼容版本NDK(推荐r25c,规避版本兼容问题)
  • 设置环境变量:
    export ANDROID_NDK_ROOT=/Users/你的用户名/Library/Android/sdk/ndk/25.2.9519653
    export PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/darwin-x86_64/bin:$PATH
    

2. 完善Cargo目标配置

在~/.cargo/config.toml中添加目标架构的链接器配置:

[target.aarch64-linux-android]
linker = "aarch64-linux-android33-clang" # API level可根据需求调整为21及以上

3. 用cargo-ndk简化构建流程

cargo-ndk会自动处理NDK工具链路径,无需手动配置复杂环境变量:

  • 安装工具:
    cargo install cargo-ndk
    
  • 执行构建:
    cargo ndk -t arm64-v8a build --release
    

4. 调整依赖版本兼容性

若以上步骤无效,尝试锁定ring版本并确保与hyper-rustls兼容:
修改Cargo.toml:

hyper = { version = "0.14.16", features = ["full"] }
hyper-rustls = { version = "0.24.1", exclude = ["ring"] }
ring = "0.16.20"

内容的提问来源于stack exchange,提问作者L.yerk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 01:31:21