sh 为Android开发构建Google Protobuf库。用android ndk独立工具链。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 为Android开发构建Google Protobuf库。用android ndk独立工具链。相关的知识,希望对你有一定的参考价值。


PREFIX=`pwd`/protobuf/android
rm -rf ${PREFIX}
mkdir ${PREFIX}

export NDK=YOUR_NDK_ROOT
 
# 1. Use the tools from the Standalone Toolchain
export PATH=YOUR_NDK_STAND_ALONE_TOOL_PATH/bin:$PATH
export SYSROOT=YOUR_NDK_STAND_ALONE_TOOL_PATH/sysroot
export CC="arm-linux-androideabi-gcc --sysroot $SYSROOT"
export CXX="arm-linux-androideabi-g++ --sysroot $SYSROOT"
export CXXSTL=$NDK/sources/cxx-stl/gnu-libstdc++/4.6
 
##########################################
# Fetch Protobuf 2.5.0 from source.
##########################################

(
    cd /tmp
    curl http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz --output /tmp/protobuf-2.5.0.tar.gz
 
    if [ -d /tmp/protobuf-2.5.0 ]
    then
        rm -rf /tmp/protobuf-2.5.0
    fi
    
    tar xvf /tmp/protobuf-2.5.0.tar.gz
)

cd /tmp/protobuf-2.5.0

mkdir build
 
# 3. Run the configure to target a static library for the ARMv7 ABI
# for using protoc, you need to install protoc to your OS first, or use another protoc by path
./configure --prefix=$(pwd)/build \
--host=arm-linux-androideabi \
--with-sysroot=$SYSROOT \
--disable-shared \
--enable-cross-compile \
--with-protoc=protoc \
CFLAGS="-march=armv7-a" \
CXXFLAGS="-march=armv7-a -I$CXXSTL/include -I$CXXSTL/libs/armeabi-v7a/include"
 
# 4. Build
make && make install
 
# 5. Inspect the library architecture specific information
arm-linux-androideabi-readelf -A build/lib/libprotobuf-lite.a

cp build/lib/libprotobuf.a $PREFIX/libprotobuf.a
cp build/lib/libprotobuf-lite.a $PREFIX/libprotobuf-lite.a

以上是关于sh 为Android开发构建Google Protobuf库。用android ndk独立工具链。的主要内容,如果未能解决你的问题,请参考以下文章

全新 Google Pixel Watch 重磅上线 | 着手为 Wear OS 构建应用!

如何将 Google 广告添加到 PhoneGap 构建的应用程序?

解锁 2022 Google 游戏开发者峰会 | 打造高质量的游戏体验

Buck vs Gradle,Android 构建系统的优缺点

sh 用于构建和启动Google Fuchsia的BASH脚本

sh 在Android中调试Google Analytics