当前位置: 首页 > article >正文

ubuntu18.04使用ndk编译protobuf库

ndk下载路径:
https://dl.google.com/android/repository/android-ndk-r25c-linux.zip

protobuf下载路径:https://github.com/protocolbuffers/protobuf/releases

下载protobuf源码后,拷贝到ubuntu虚拟机,新建build.sh脚本, 脚本添加如下内容,注意NDK需要修改为解压的对应路径

编译32位库

curpath=$PWD
echo $curpath
mkdir build
chmod +x configure

export PREFIX=$curpath/build
export PATH=/home/work/workspace/app/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export SYSROOT=/home/work/workspace/app/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot
export CC="armv7a-linux-androideabi26-clang --sysroot $SYSROOT"
export CXX="armv7a-linux-androideabi26-clang++ --sysroot $SYSROOT"
export CFLAGS="-march=armv7-a -D__ANDROID_API__=26 -fPIC"
export CXXFLAGS="-frtti -fexceptions -march=armv7-a -D__ANDROID_API__=26 -fPIC"


./configure \
--prefix=$PREFIX \
--host=arm-linux-androideabi \
--with-sysroot="${SYSROOT}" \
--enable-static \
--enable-cross-compile \
--with-protoc=protoc \

LIBS="-llog -lz -lc++_static"
make -j 8
make install

编译64位库

export PATH=/home/zj/workspace/app/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
export SYSROOT=/home/zj/workspace/app/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot
export CC="aarch64-linux-android26-clang --sysroot $SYSROOT"
export CXX="aarch64-linux-android26-clang++ --sysroot $SYSROOT"
export CFLAGS="-D__ANDROID_API__=26 -fPIC"
export CXXFLAGS="-frtti -fexceptions -D__ANDROID_API__=26 -fPIC"


./configure \
--prefix=$PREFIX \
--host=aarch64-linux-android \
--with-sysroot="${SYSROOT}" \
--enable-static \
--enable-cross-compile \
--with-protoc=protoc \

LIBS="-llog -lz -lc++_static"
make -j8
make install

编译产物在build目录下,可以用readelf -h 命令查看库为32或者64位


http://www.kler.cn/a/459922.html

相关文章:

  • matlab中高精度计算函数vpa与非厄米矩阵本征值的求解
  • 三、GIT与Github推送(上传)和克隆(下载)
  • 深入理解属性抽取:实体内部特征信息的挖掘
  • 计算机网络练习题
  • STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)
  • 《普通逻辑》学习记录——命题的判定与自然推理
  • Kafka数据迁移全解析:同集群和跨集群
  • 记一次 .NET某电商医药网站 CPU爆高分析
  • MySQL 可重复读隔离级别,完全解决幻读了吗?
  • uniapp 微信小程序开发使用高德地图、腾讯地图
  • Excel基础知识
  • 命令行之巅:Linux Shell编程的至高艺术(中)
  • 加强版十六章视频读写
  • Oracle SqlPlus常用命令简介
  • SDL2音视频播放的常用API库
  • Redis字符串底层结构对数值型的支持常用数据结构和使用场景
  • 安装torch-geometric库
  • 正则表达式:高级应用与性能优化
  • uniapp使用ucharts组件
  • 21天掌握JavaWeb - 第17天:前端页面开发与集成测试
  • leetcode 热题100(78. 子集)dfs回溯 c++
  • #渗透测试#红蓝攻防#红队打点web服务突破口总结02
  • HTML——23. 锚点和空链接二
  • 单片机理论基础
  • InstructGPT:基于人类反馈训练语言模型遵从指令的能力
  • Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA