android cmake 动态库,使用cmake/make打包Android 动态库

打包需要使用cmake是AndroidSdk目录下的

${ANDROID_HOME}/cmake/3.6.4111459/bin/cmake

参数:

-H

指定CMakeLists目录

-B

指定build目录

-DANDROID_NDK

ndk路径

-DCMAKE_LIBRARY_OUTPUT_DIRECTORY

输出目录

-DCMAKE_MAKE_PROGRAM

cmake 程序ninja

-DCMAKE_TOOLCHAIN_FILE

打包工具链的路径

${ANDROID_SDK}/ndk-bundle/build/cmake/android.toolchain.cmake

-DANDROID_ABI

armeabi-v7a

armeabi-v7a with NEON 与 -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON 相同。

arm64-v8a

x86

x86_64

-DCMAKE_BUILD_TYPE

构造模式:Release、Debug。是否带debug调试信息

-DANDROID_NATIVE_API_LEVEL 最低支持的Api版本

-DANDROID_TOOLCHAIN

工具链名称

-DCMAKE_GENERATOR

构造器 Ninja

打包所有abi的脚本例子:

echo "start build"

export NDK=/Users/zhumingwei/Downloads/android-ndk-r20b //自己下载NDK目录,也可用SDK中的目录

export MINSDKVERSION=19

cmake_exec=$ANDROID_HOME/cmake/3.6.4111459/bin/cmake

ninja_exec=$ANDROID_HOME/cmake/3.6.4111459/bin/ninja

export CMAKE_GENERATOR="Ninja"

export BUILD_TYPE=Debug #Release、Debug

export OUTPUT_DIR="输出目录"

H_dir="源文件目录"

B_dir=${H_dir}/build

build(){

echo "start build $1"

pre=$(pwd)

export ANDROID_ABI=$1 # armeabi-v7a、arm64-v8a、x86、x86_64,默认armeabi

$cmake_exec \

-H$H_dir \

-B$B_dir \

-DANDROID_NDK=${NDK} \

-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${OUTPUT_DIR}/${ANDROID_ABI} \

-DCMAKE_MAKE_PROGRAM=${ANDROID_HOME}/cmake/3.6.4111459/bin/ninja \

-DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \

-DANDROID_ABI=$ANDROID_ABI \

-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \

-DANDROID_NATIVE_API_LEVEL=$MINSDKVERSION \

-DANDROID_TOOLCHAIN=clang \

-DCMAKE_GENERATOR=$CMAKE_GENERATOR\

cd $B_dir

$ninja_exec

cd $pre

}

build "x86"

build "armeabi-v7a"

build "arm64-v8a"

build "x86_64"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值