Linux跨平台编译安卓版本protobuf库——趟坑记录
程序员文章站
2023-12-28 14:16:40
...
1 目标
源码编译2.6.1版本 android protobuf库
2 准备
2.1 获取protobuf源码
1、下载源码:https://github.com/protocolbuffers/protobuf
获取v2.6.1 tag对应源码;
2、进入protobuf目录,运行:
./autogen.sh
Tip:可能存在错误,提示gtest获取失败;原因2.6.1版本过旧,脚本中的gtest链接已失效;根据提示手动将gtest拷贝到指定位置即可(注意gtest版本)
3、跨平台编译android版本:
mkdir build && cd build
vi build-protobuf-android.sh
build-protobuf-android.sh 内容:
export PREFIX=$HOME/Android/andrc/protobuf-3.5.1-v7a/
export PATH=$HOME/Android/arm-26-toolchain-clang/bin:$PATH
export SYSROOT=$HOME/Android/arm-26-toolchain-clang/sysroot
export CC="arm-linux-androideabi-clang --sysroot $SYSROOT"
export CXX="arm-linux-androideabi-clang++ --sysroot $SYSROOT"
../configure \
--prefix=$PREFIX \
--host=arm-linux-androideabi \
--with-sysroot="${SYSROOT}" \
--enable-shared \
--enable-cross-compile \
--with-protoc=protoc \
CFLAGS="-march=armv7-a -D__ANDROID_API__=26" \
CXXFLAGS="-frtti -fexceptions -march=armv7-a -D__ANDROID_API__=26" \
LIBS="-llog -lz -lc++_static"
make -j 2
make install
以上命令参数:
–prefix:生成的库安装路径
PATH:android跨平台编译工具链路径
4、执行脚本编译bash build-protobuf-android.sh
编译好后的文件在--prefix
指定目录下