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

如何在Android externalNativeBuild CMake中传递构建时参数(如-j)?

在Android Gradle中通过externalNativeBuild传递CMake构建阶段的-j参数

要给CMake构建阶段(对应cmake --build . -- -j里的原生构建参数)传递-j这类并行编译参数,不能用arguments字段(它仅用于CMake配置阶段的参数,比如-DCMAKE_*系列),需要使用buildCommandArgs配置项:

  1. 在模块级build.gradle的externalNativeBuild -> cmake块中添加buildCommandArgs,直接指定-j或带线程数的-jN(比如-j8):
android {
    // 其他Android配置项...
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
            // 配置阶段参数(示例)
            arguments "-DCMAKE_BUILD_TYPE=Release"
            // 传递给ninja/Makefile的构建阶段参数
            buildCommandArgs "-j8"
        }
    }
}
  1. 若想自动匹配当前设备的CPU核心数,可借助Gradle的API动态设置:
buildCommandArgs "-j${Runtime.runtime.availableProcessors()}"

buildCommandArgs的作用就是将参数传递到cmake --build命令中--之后的位置,直接交给ninja或Unix Makefile执行,实现并行加速编译的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:22:22