小编Abu*_*gun的帖子

将“-j”参数从 gradle 传递给 ninja

-j在使用 gradle 构建 Android 应用程序时,我需要将参数传递给 ninja。(在 Windows 上)

为什么我需要这个?- 我们有巨大的统一 C++ 文件,需要大量内存才能编译。目前我没有足够的内存(约 10GB 可用)来在 8 个内核上并行编译它们。因此,当内存耗尽时,clang 会失败。

我看到 gradlecmake使用--buildkey运行,所以我试图在-j1那里添加我的arg。但似乎arguments字段仅用于 cmake 生成,因为它不会影响在构建阶段传递给 cmake 的命令行。

externalNativeBuild {
    cmake {
        cFlags "..."
        cppFlags "..."
        arguments "... -- -j1"
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在看到的唯一方法是ninja用一些包装器替换-j从那里传递。但这是我想使用的最后一个选项。感谢有关如何实现这种有效方式的任何想法。

cmake gradle android-studio ninja

6
推荐指数
1
解决办法
634
查看次数

标签 统计

android-studio ×1

cmake ×1

gradle ×1

ninja ×1