交叉编译-5:使用NDK和CMake在Linux上编译Android动态库

       之前接触过使用CMake编译IOS的项目,开始编译Android库时候,不是很熟悉Android.mk的编译方式,所以继续沿用CMake编译Android的库。使用gcc编译出来的库在Android stutio上使用时候App有些是可以直接用,但有些动态库会有一些奇奇怪怪的错误。所以换了最新版本的NDK,并采用clang编译,这下编译出来的库在Android stutio上使用是没有什么问题了。现将两种编译方式都总结如下,供大家参考。

 

一、android-ndk-r14b编译(gcc)

 

1. NDK环境配置

 

(1)下载android-ndk-r14b-linux-x86_64.zip

(2)linux下解压android-ndk-r14b-linux-x86_64.zip压缩包到 /usr/android 目录下(解压的目录不局限于这个)

 

#unzip android-ndk-r14b-linux-x86_64.zip

(3)配置NDK,编辑/etc/profile,添加NDK路径。

 

 

# vim /etc/profile

export ANDROID_NDK_HOME=/usr/android/android-ndk-r14b
export PATH=$ANDROID_NDK_HOME:$PATH

(4)输入命令 source /etc/profile,使配置生效。

 

 #source /etc/profile

 

2. cmake工具链

(1)下载android.toolchain.cmake

(2) 修改工具链android.toolchain.cmake,将1325行改为:

 

set( ANDROID_LINKER_FLAGS "--sysroot=${ANDROID_SYSROOT}" )

注:如果不添加"--sysroot=${ANDROID_SYSROOT}",可能会有编译错误:缺少crtbegin_so.o、crtend_so.o等。

 

 

3. cmake脚本(CMakelists.txt)

 

#****************************T
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值