android开发分享NDK Cmake

CMake与NDK搭配使用时,可以配置的部分变量: 1. :指定Android的目标版本,对应 目录下的版本。通常情况下是 中的 ,这样就能确保所有大于等于 的设备都可以使用编译生成的库。 但是也有例外,比如:当 时,即使 为`18 ANDROID_PLATFORM=android 21 $NDK/ …

cmake与ndk搭配使用时,可以配置的部分变量:

  1. android_platform:指定android的目标版本,对应$ndk/platforms/目录下的版本。通常情况下是defaultconfig中的minsdkversion,这样就能确保所有大于等于minsdkversion的设备都可以使用编译生成的库。 但是也有例外,比如:当android_abi=arm64-v8a时,即使minsdkversion18,但是android_platform=android-21,因为从api21开始才支持64位库。这里的版本直接决定了使用$ndk/platforms目录下哪个系统版本的库和头文件。
  2. android_stl:指定使用的stl库,stl库不是android系统自带的,若使用静态库(c++_static),则会链接进目标库;若使用动态库(c++_shared),gradle会将动态库(libc++_shared.so)和目标库一起打包。详情可参考c++ 库支持。
  3. android_arm_neon:指定cmake是否构建支持neon的目标库。api大于等于23时,默认值为true,否则为false。

cmake编译时,是通过$ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin下的交叉编译工具进行编译和链接,arm-linux-androideabi-4.9表示对应abi架构和位数,例如:arm64就是aarch64-linux-android-4.9
而链接时所依赖的系统库,则是在$ndk/platforms/${android_platform}/${abi}/usr/lib目录下。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/900936.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐