iOS 生成protobuf静态库
2020/5/7 23:26:40
本文主要是介绍iOS 生成protobuf静态库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
要求
生成一个3.6.1
的C++
版本protobuf
静态库
编译
在github
上找到protobuf
1.先下载对应版本,进入目录
2.编译静态库
找了好久,没有找到对应的方法,不过阅读能力强的,可以./configure help
把每个配置选项研究下。我找到一个现成的执行命令,不过被墙了,我就搬运解释下。
- 先执行脚本
当前目录下就有这个脚本
./autogen.sh 复制代码
- 设置环境变量
build_dir=`pwd`/../libprotobuf/ios darwin=darwin`uname -r` protoc=`which protoc` isysroot=`xcrun --sdk iphoneos --show-sdk-path` cflags="-Wno-unused-local-typedef -Wno-unused-function -DNDEBUG -g -O0 -pipe -fPIC -fcxx-exceptions" cxxflags="$cflags -std=c++11 -stdlib=libc++" 复制代码
- 生成输出目录
libprotobuf/ios/arch
、libprotobuf/ios/lib
mkdir -p $build_dir/arch mkdir -p $build_dir/lib 复制代码
- 配置arm64
./configure \ --build=x86_64-apple-$darwin \ --host=arm \ --with-protoc=$protoc \ --disable-shared \ --prefix=$build_dir \ --exec-prefix=$build_dir/arch/arm64 \ "CC=clang" \ "CFLAGS=$cflags -miphoneos-version-min=8.0 -arch arm64 -isysroot $isysroot" \ "CXX=clang" \ "CXXFLAGS=$cxxflags -miphoneos-version-min=8.0 -arch arm64 -isysroot $isysroot" \ LDFLAGS="-arch arm64 -miphoneos-version-min=8.0 -stdlib=libc++" \ "LIBS=-lc++ -lc++abi" 复制代码
- 编译arm64
make -j8 make install 复制代码
- 清除配置
make distclean 复制代码
- 配置armv7
./configure \ --build=x86_64-apple-$darwin \ --host=armv7-apple-$darwin \ --with-protoc=$protoc \ --disable-shared \ --prefix=$build_dir \ --exec-prefix=$build_dir/arch/armv7 \ "CC=clang" \ "CFLAGS=$cflags -miphoneos-version-min=8.0 -arch armv7 -isysroot $isysroot" \ "CXX=clang" \ "CXXFLAGS=$cxxflags -miphoneos-version-min=8.0 -arch armv7 -isysroot $isysroot" \ LDFLAGS="-arch armv7 -miphoneos-version-min=8.0 -stdlib=libc++" \ "LIBS=-lc++ -lc++abi" 复制代码
- 编译armv7
make -j8 make install 复制代码
- 合并arm64、armv7
lipo \ $build_dir/arch/arm64/lib/libprotobuf-lite.a \ $build_dir/arch/armv7/lib/libprotobuf-lite.a \ -create \ -output $build_dir/lib/libprotobuf-lite.a 复制代码
- 删除arch临时目录
rm -rf $build_dir/arch 复制代码
- 最后生成的目录
proto ├── cardboard_device.pb.cc ├── cardboard_device.pb.h └── libprotobuf └── ios ├── include │ └── google/* └── lib └── libprotobuf-lite.a 复制代码
把lib
、include
拖到工程中,指定搜索目录就可以使用了。
这篇关于iOS 生成protobuf静态库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-10-05Swift语法学习--基于协议进行网络请求
- 2022-08-17Apple开发_Swift语言地标注释
- 2022-07-24Swift 初见
- 2022-05-22SwiftUI App 支持多语种 All In One
- 2022-05-10SwiftUI 组件参数简写 All In One
- 2022-04-14SwiftUI 学习笔记
- 2022-02-23Swift 文件夹和文件操作
- 2022-02-17Swift中使用KVO
- 2022-02-08Swift 汇编 String array
- 2022-01-30SwiftUI3.0页面反向传值