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

编译libaom-sys针对aarch64-linux-android时出错求助

解决方案步骤
  • 确认NDK环境变量的传递
    确保NDK_HOME在构建终端中可读取,执行echo %NDK_HOME%验证路径是否正确(路径不能含空格或特殊字符)。同时额外设置ANDROID_NDK_ROOT变量,值和NDK_HOME一致,部分CMake脚本会优先读取这个变量。

  • 直接传递CMake工具链参数
    构建前在终端设置以下环境变量,再执行构建命令:

    set CMAKE_TOOLCHAIN_FILE=%NDK_HOME%\build\cmake\android.toolchain.cmake
    set ANDROID_ABI=arm64-v8a
    set ANDROID_PLATFORM=android-24  # 替换为你的应用最低SDK版本,比如android-21
    cargo build --target aarch64-linux-android
    
  • 配置Cargo项目config.toml
    在项目根目录的.cargo文件夹下创建或修改config.toml,添加Android目标的专属配置,确保链接器和CMake参数自动传递:

    [target.aarch64-linux-android]
    linker = "%NDK_HOME%\toolchains\llvm\prebuilt\windows-x86_64\bin\aarch64-linux-android24-clang.cmd"
    rustflags = [
        "-C", "link-arg=-fuse-ld=lld",
    ]
    
    [env]
    CMAKE_TOOLCHAIN_FILE = "%NDK_HOME%\build\cmake\android.toolchain.cmake"
    ANDROID_ABI = "arm64-v8a"
    ANDROID_PLATFORM = "android-24"  # 对应应用最低SDK版本
    

    注意linker路径里的android24要和ANDROID_PLATFORM的版本号一致。

  • 尝试使用预编译libaom库(跳过源码编译)
    如果源码编译始终有问题,可自行编译libaom for Android,或者找现成的预编译包,然后设置以下环境变量跳过libaom-sys的源码构建:

    set LIBAOM_LIB_DIR=你的预编译libaom库路径\lib
    set LIBAOM_INCLUDE_DIR=你的预编译libaom库路径\include
    cargo build --target aarch64-linux-android
    
  • 降级NDK版本
    部分旧版libaom的CMake脚本对NDK 26的目录结构支持不佳,试试降级到NDK 25.x版本再构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:21:07