我正在开发 ac/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(通过命令行),它是如何完成的?
有独立的 NDK、make_standalone_toolchain.py脚本、android.toolchain.cmake和其他选项,但没有文档记录或最新的。大多数文档仍然谈论过时的 Android.mk 方法。
我假设在我的 CMakeList.txt 中包含 android.toolchain.cmake,这将设置所有需要的环境......
我正在使用最新的 Android Studio 3.0.1 和 NDK r16b(通过 SDK Manager 安装)
亚历克斯 - 谢谢,正是我正在寻找的。只需添加一些标志和一个调用即可:
> 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 .
Run Code Online (Sandbox Code Playgroud)