[TOC]
概述 Gradle配置 设置SO编译的平台 1 2 3 4 // 指定abi,如需在模拟器调试,增加"x86",否则指定"armeabi-v7a"即可 ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" }
CMake版本的设置 1 2 3 4 5 6 7 8 9 10 11 12 defaultConfig { // 指定abi,如需在模拟器调试,增加"x86",否则指定"armeabi-v7a"即可 ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" } // 导入CMake构建。声明C++的版本号 externalNativeBuild { cmake { cppFlags "-std=c++17" } } }
1 2 3 4 5 6 7 8 externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" version "3.10.2" } }
CMake语法学习 1 2 3 4 # 下面我们学习一下cmake创建一个变量,使用的是set set(var Welocome to Android Jni World) # CMake是不区分大小写的: SET(var helloJni) message(${var})
只进行编译Native的库
执行Native的库编译的时候,我们发现使用3.10.2版本的Cmake 会导致CmakeList里面的信息无法打印出来。应该是Android Studio的Bug。
所以我们使用3.6.0版本的Cmake
CMake的基础语法的学习 变量的打印
CMake怎么增加多个链接库学习
1 2 3 4 5 6 7 8 9 # 关联库(链接库),确保hello-jni中 能使用log库。 # 我们将我们的hello-jni和poeple-jni的链接库进行关联起来 target_link_libraries( # Specifies the target library. hello-jni poeple-jni # Links the target library to the log library # included in the NDK. ${log-lib})