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

Android平台Rust编译Opus库失败的问题解决求助

解决Rust编译Android .so文件时Opus库的构建错误

核心报错定位

从日志里能提取两个关键问题:

  1. CMake工具链路径错误:NDK 23+版本已移除build/cmake/android.toolchain.cmake旧路径,改用toolchains/llvm/prebuilt/<主机架构>/cmake/android.toolchain.cmake,但audiopus_sys的构建脚本仍在查找旧路径。
  2. 构建工具缺失:CMake找不到make程序,CMAKE_MAKE_PROGRAM未配置。

分步解决方案

1. 安装基础构建工具

先确保系统具备make等基础编译工具,以Ubuntu/Debian为例:

sudo apt install build-essential

2. 配置正确的CMake工具链路径

通过环境变量指定NDK新版工具链路径,让audiopus_sys构建脚本能找到:

export CMAKE_TOOLCHAIN_FILE=/home/riyan/Android/Sdk/ndk/29.0.13113456/toolchains/llvm/prebuilt/linux-x86_64/cmake/android.toolchain.cmake

3. 升级Opus依赖版本(推荐)

当前使用的opus = "0.3.0"依赖的audiopus_sys v0.2.2对新NDK支持不完善,升级到新版可直接修复路径问题:
修改Cargo.toml中的依赖:

opus = "0.5.0" # 或更高稳定版本

4. 手动指定Make程序路径(可选)

如果仍提示找不到make,手动指定其路径:

export CMAKE_MAKE_PROGRAM=/usr/bin/make

5. 交叉编译Opus库备用方案(可选)

若升级依赖无效,可手动交叉编译Opus库后指定路径:

# 下载Opus源码
git clone https://github.com/xiph/opus.git
cd opus
mkdir build-android-arm64 && cd build-android-arm64

# 用NDK CMake配置编译
cmake .. \
  -DCMAKE_TOOLCHAIN_FILE=/home/riyan/Android/Sdk/ndk/29.0.13113456/toolchains/llvm/prebuilt/linux-x86_64/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a \
  -DANDROID_PLATFORM=android-21 \
  -DCMAKE_INSTALL_PREFIX=/your/custom/path/opus-arm64

# 编译安装
make install

# 指定路径后编译Rust项目
export PKG_CONFIG_PATH=/your/custom/path/opus-arm64/lib/pkgconfig
cargo ndk -t arm64-v8a build

最终编译验证

执行编译命令:

cargo ndk -t arm64-v8a build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:45:08