由于Android Studio封装了一些编译的细节,只知道结果但是不知道内部具体做了什么样的操作,所有想具体学习一下
#前言
Android Studio在2.2的版本中引入了Cmake编译,具体的Cmake编译与ndk-build的一些区别可以在网络上搜索
以下是简易编译脚本 每行后要加 \符号链接,不然会commond not found 问题
cmake -H./ -B./build
-DANDROID_ABI=arm64-v8a
-DANDROID_PLATFORM=android-16
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=./build
-DCMAKE_BUILD_TYPE=Debug
-DANDROID_NDK=/Users/jinmingkai/Library/Android/sdk/ndk/21.3.6528147
-DCMAKE_CXX_FLAGS=
-DCMAKE_SYSTEM_NAME=Android
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a
-DCMAKE_SYSTEM_VERSION=16
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON
-DCMAKE_ANDROID_NDK=/Users/jinmingkai/Library/Android/sdk/ndk/21.3.6528147
-DCMAKE_TOOLCHAIN_FILE=/Users/jinmingkai/Library/Android/sdk/ndk/21.3.6528147/build/cmake/android.toolchain.cmake
-G Ninja
-DCMAKE_MAKE_PROGRAM=/Users/jinmingkai/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja \
命令的参考博客1
参考博客2
注释:-H SetHomeDirectory 的意思,即sets the source directory for the project
-B 表示sets the binary directory 为 build 目录(若目录不存在,会自动创建)
-G 表示制定makefile生成工具
CMake_TOOLCHAINE_FILE 制定Android编译链
编译完后会在build文件夹生成build.ninja的文件,执行ninja命令,编译完就结束了。
其实ninja执行文件需要加到系统环境中,ninja在/Users/jinmingkai/Library/Android/sdk/cmake/3.10.2.4988404/bin/ninja下