对 NDK 中的不同库使用 ndk-build 和 cmake
Using ndk-build and cmake both for different libaries in NDK
我有一个 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"
}
}
当我尝试构建它时,我收到一条错误消息
More than one externalNativeBuild path specified
有没有办法构建这个,或者我必须只使用 ndk-build
或 CMake
之一。
cmake 和 gnu make(ndk-build 的基础)都支持自定义目标和外部工具,因此您可以从 Android.mk 开始您的 cmake 部分,反之亦然。
但这对 Android Studio 集成没有帮助。要完全 IDE 支持两个本机子项目,您可以重写一个或另一个以使用相同的外部本机构建,或者提取依赖于其中一个的部分,从应用程序模块到库模块。
我有一个 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"
}
}
当我尝试构建它时,我收到一条错误消息
More than one externalNativeBuild path specified
有没有办法构建这个,或者我必须只使用 ndk-build
或 CMake
之一。
cmake 和 gnu make(ndk-build 的基础)都支持自定义目标和外部工具,因此您可以从 Android.mk 开始您的 cmake 部分,反之亦然。
但这对 Android Studio 集成没有帮助。要完全 IDE 支持两个本机子项目,您可以重写一个或另一个以使用相同的外部本机构建,或者提取依赖于其中一个的部分,从应用程序模块到库模块。