【问题标题】:Using ndk-build and cmake both for different libaries in NDK为 NDK 中的不同库使用 ndk-build 和 cmake
【发布时间】:2018-04-06 05:57:31
【问题描述】:

我有一个包含我的本机代码的 android 库,我将该库导入到我的应用程序中。我已经在这个库中编写了一些本机 C/C++ 代码,并使用ndk-build 设置了编译。这是我添加到库的 gradle 文件中的代码:

externalNativeBuild {
    ndkBuild {
        path 'src/main/jni/Android.mk'
    }
}

这一切都很好。现在,我想包含一个外部本地 C/C++ 库,我有关于如何使用 CMake 设置它的说明。我编写了代码以将此外部库包含到我的顶级 CMakeLists.txt 中,并将其包含到我的 gradle 中,看起来不像

externalNativeBuild {
    ndkBuild {
        path 'src/main/jni/Android.mk'
    }

    cmake {
        // Provides a relative path to your CMake build script.
        path "CMakeLists.txt"
    }
}

当我尝试构建它时,我收到一条错误消息

指定了多个 externalNativeBuild 路径

有没有办法构建它,或者我必须只使用ndk-buildCMake 之一。

【问题讨论】:

  • 您始终可以定义自己的 gradle 任务,直接执行 ndk-build。这是一项工作,因此您必须确定与重写一组 makefile 相比是否值得。

标签: android c cmake android-ndk ndk-build


【解决方案1】:

cmake 和 gnu make(ndk-build 的基础)都支持自定义目标和外部工具,因此您可以从 Android.mk 开始您的 cmake 部分,反之亦然。

但这对 Android Studio 集成没有帮助。要为这两个本地子项目提供完整的 IDE 支持,您可以重写一个或另一个以使用相同的外部本地构建,或者将依赖于其中一个的部分从应用程序模块提取到库模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2018-05-05
    • 1970-01-01
    相关资源
    最近更新 更多