编译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
相关产品推荐
相关产品推荐

