【发布时间】:2018-06-11 11:38:33
【问题描述】:
我正在开发一个 c/c++ 跨平台项目,该项目由 2 个主要库(具有一些外部依赖项:ssl、yajl、fribidi)构成。
android 解决方案将包括 Java 文件和一个 JNI 层,所有这些都捆绑在一个 AAR 文件中(包括资产和本机库)。
我设法构建了整个项目,但是以一种非常尴尬的方式:
我在 Android Studio 中创建了一个带有原生支持的“hello world”Android 应用程序,并将所有原生依赖项添加到 CMAkeList.txt。我添加了我的 Java 代码 + JNI 并设法创建了 AAR(目前仅适用于 ARM)。
现在我需要将不同库的构建分离到它们各自的项目中:libA、libB 和 C.aar。
如何在没有 IDE 的情况下(通过命令行)完成?
有 stand-alone NDK、make_standalone_toolchain.py 脚本、android.toolchain.cmake 和其他选项,但没有记录或更新迄今为止。大多数文档仍然在谈论过时的 Android.mk 方法。
我假设在我的 CMakeList.txt 中包含 android.toolchain.cmake,它将设置所有需要的环境...
我正在使用最新的 Android Studio 3.0.1 和 NDK r16b(通过 SDK 管理器安装)
Alex - 谢谢,正是我想要的。只需添加一些标志和调用:
> cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%\build\cmake\android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=android-19 -DCMAKE_MAKE_PROGRAM=%ANDROID_NDK%\prebuilt\windows-x86_64\bin\make.exe -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="armeabi-v7a with NEON" ..
> cmake --build .
【问题讨论】:
-
代替
make,使用cmake --build更简洁。 目录 是一个可选参数。这样你就不用担心generator的选择了。也许忍者会更胖。
标签: android-ndk ndk-build