Android平台protobuffer静态链接库的编译

2020-06-08  本文已影响0人  orgcheng

准备工作

配置和编译

下面利用cmake连配置和编译安装

具体过程参考,但是有些选项参数,还需要参考这篇博客

当前目录,是protobuf-3.12.3/cmake/build/release,执行完后,生成文件在protobuf-3.12.3同级别的install目录下面

// NDK_HOME目录是必须的,否则提示找不到
export NDK_HOME=/Users/chengzhen/Library/Android/sdk/ndk/21.0.6113669
export ANDROID_NDK_HOME=/Users/chengzhen/Library/Android/sdk/ndk/21.0.6113669
export ANDROID_NDK_ROOT=/Users/chengzhen/Library/Android/sdk/ndk/21.0.6113669
PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/darwin-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin:$ANDROID_NDK_ROOT/toolchains/aarch64-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin:$PATH

cmake -G "Unix Makefiles" \
-Dprotobuf_BUILD_SHARED_LIBS=OFF \
-Dprotobuf_BUILD_SHARED_LIBS=OFF \
-Dprotobuf_BUILD_STATIC_LIBS=ON \
-Dprotobuf_BUILD_EXAMPLES=OFF \
-DCMAKE_TOOLCHAIN_FILE=$NDK_HOME/build/cmake/android.toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=../../../../install \
-DANDROID_NDK=$NDK_HOME \
-DANDROID_ABI=armeabi-v7a \
-DANDROID_NATIVE_API_LEVEL=21 \
-DANDROID_STL=c++_shared \
../..

cmake --build .
make install

另外,还需要修改protobuf-3.12.3/cmake目录下的CMakeLists.txt和install.cmake文件

主要是屏蔽掉protoc.cmake、libprotobuf.cmake和libprotoc.camke相关的编译,具体修改可参考博客https://my.oschina.net/zzxzzg/blog/1621684

上一篇 下一篇

猜你喜欢

热点阅读