【问题标题】:How to specify Android NDK CMake build directory如何指定 Android NDK CMake 构建目录
【发布时间】:2017-08-30 07:07:44
【问题描述】:

我正在通过 Android Studio 构建一些 C++ 库,我不想让那些 .externalNativeBuild 文件夹污染我的源代码树。

是否可以像buildDir 一样指定它们应该在哪里放置 Java 二进制文件?

我尝试像这样使用 -B 参数:

   externalNativeBuild
    {
        cmake
        {
            arguments '-DANDROID_PLATFORM=android-14',
                    '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static',
                    '-BC:/Dev/AndroidCMake'
        }
    }

在创建指定文件夹并包含构建的一些副产品时,它在一定程度上起作用。然而构建被破坏并且.externalNativeBuild 文件夹仍然被创建。它也包含一些文件。所以看起来该文件夹是在工具链中的其他位置指定的。

这是我得到的错误:

Error:Expected json generation to create 'C:\Dev\Android\TestApp\app\.externalNativeBuild\cmake\debug\armeabi-v7a\android_gradle_build.json' but it didn't

该 json 文件位于指定的 -B 文件夹中,但工具链仍在该其他文件夹中。

【问题讨论】:

  • 污染你的源代码树?意味着您的代码是使用 VCS 进行版本控制的?只需添加一条忽略规则,它是为编译本机代码生成的唯一文件夹,因此它只是一个规则
  • 是的,我的代码是使用名为 git 的 VCS 进行版本控制的。听说过它?事实上,我最终在 .gitignore 中添加了一些条目,但遗憾的是文件夹有些硬编码。

标签: android cmake android-ndk android-gradle-plugin


【解决方案1】:

我偶然发现了我自己问题的答案。 显然你需要使用 buildStagingDirectory 属性。 我尚未对其进行测试,但我相当有信心它会成功。

【讨论】:

  • 链接不起作用,请始终提供示例用法。
  • 终于在another thread找到了正确的链接示例!!请参阅cmake docs 和详细信息。
猜你喜欢
  • 2013-10-13
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 2017-11-19
  • 2021-04-17
  • 1970-01-01
相关资源
最近更新 更多