iOS ProtocolBuffer 最新操作记录以及“'GPBProtocolBuffers_RuntimeSupport.h' file not found”等问题解决
来源:互联网 发布:上海行知小学 编辑:程序博客网 时间:2024/06/05 06:58
ProtocolBuffer最新操作记录
概述
Protocol Buffer(简称PB)是Google出品的一种轻量 & 高效的结构化数据存储格式(详细原理Google下即可)。
使用总结
- 相比常用Json和XML,性能更好(数据更小、结构更合理、数据交换更快);
- 最重要的是使用PB,对开发者设计数据结构的过程有很好的提示规范作用(个人体会��)。
Mac下环境搭建
提示:搭建环境前请FQ下(各位懂得!)。
安装
HOMEBREW
(已安装跳过),打开终端输入指令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Protocol Buffer 安装包,链接:
https://github.com/google/protobuf/releases
;主要介绍iOS端,故下载
protobuf-objectivec-3.4.0.tar.gz
(当前最新),将压缩包解压,放在合适的地方;在终端输入,
brew install autoconf automake libtool curl
指令;在终端,
cd
进解压包protobuf-objectivec-3.4.0
文件;输入
./autogen.sh
,运行脚本(此处需FQ,加载资源);输入
./configure
,运行脚本;输入
make
,编译;输入
make check
,检查依赖包是否完整,终端会输出7个检查项,都显示pass即可;输入
make install
,安装PB;输入
proto --version
不报错,输出版本信息,即可。
生成.h、.m文件
使用终端
cd
到存放.proto
文件的文件夹(事先创建好);输入
touch Person.proto
命令;输入
vim Person.proto
,按i
进入编辑状态,按照PB语法设计数据,示例:syntax = "proto3";//默认是proto2,二者区别,可查阅PB文档message Person { string name = 1; string age = 2;}
按
Esc
,:wq
回车,在输入protoc --plugin=/usr/local/bin/protoc-gen-objc Person.proto --objc_out="./"
,如果没有语法或其他异常,请前往文件夹查看生成的.h
和.m
文件。在工程
target
->Build Phrases
->Compile Sources
->给Person.pbobjc.m
设置-fno-objc-arc
.
导入工程(手动)
在上面
protobuf-objectivec-3.4.0.tar.gz
解压包里面拷贝objectivec
文件夹下面的全部源码文件,粘贴到工程建中名为ProtocolBuffer
的文件夹(事先创建);点按
Xcode
左下角+
Add a new file ,点击Add Files To 你的工程名字
,在弹出的文件搜索界面,进入上一步存放PB源码的ProtocolBuffer
文件夹,选中ProtocolBuffers_iOS.xcodeproj
并添加至工程(另外一个ProtocolBuffers_OSX.xcodeproj,不用理会,尝试导入,xcode8.3会崩溃);在工程
target
->Build Phrases
->Compile Sources
->Link Binary With Libraries
添加libTestSingleSourceBuild.a
静态库在工程
target
->Build Settings
->Rez Search Path
设置$(PROJECT)/ProtocolBuffer
在工程
target
->Build Settings
->Header Search Path
设置$(PROJECT)/ProtocolBuffer
问题
关于
GPBProtocolBuffers_RuntimeSupport.h
等文件找不到的问题?刚开始使用cocoapods导入PB到工程,发现每次它导入的版本为1.9.11版本,与下载最新版本PB相比确实少了很多文件,最后便改为手动导入。
关于
GPBProtocolBuffers_RuntimeSupport.h
等文件在工程中确实存在,但编译时任然提示找不到文件?老问题,参照上面“导入工程”最后两个步骤,保证路径设置正确。
关于拖进工程.h和.m文件不支持ARC问题?
参照上面“生成.h和.m文件”最后一步。
- iOS ProtocolBuffer 最新操作记录以及“'GPBProtocolBuffers_RuntimeSupport.h' file not found”等问题解决
- iOS 支付宝 ’openssl/asn1.h' file not found 的问题解决办法
- .h file not found
- 添加openssl/rsa.h file not found 问题解决方法
- Xcode '*/*.h' file not found 此类问题解决方案
- IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法
- iOS 中支付宝 ’openssl/asn1.h' file not found问题 和 objc-class-ref in AlipaySDK问题解决方法
- IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法
- ios开发点滴-libxml/HTMLparser.h file not found
- iOS中 libxml/HTMLparser.h file not found 错误
- ios libxml/tree.h file not found解决办法
- 【iOS错误笔记】'CADbugPrintf.h'file not found
- iOS 10 openssl/asn1.h file not found
- iOS OpenCV - 'opencv2/highgui/cap_ios.h' file not found
- iOS #include<Vectors/Vectors.h> file not found问题?
- vector.h file not found
- xxx.h file not found
- zlib.h not found的编译问题解决
- 让云朵飘,微信小程序animation循环动画
- API实现HDFS的读写数据流JAVA代码及流程详解
- Linux Shell脚本编程--curl命令详解
- Android PopupWindow使用方法小结
- GraphicsMagick+im4java 图片处理
- iOS ProtocolBuffer 最新操作记录以及“'GPBProtocolBuffers_RuntimeSupport.h' file not found”等问题解决
- OpenCV Shi-Tomasi角点检测以及goodFeatureToTrack()源码分析
- java常用排序之希尔排序
- 百度地图点击城市的出现下钻
- 三种插入排序及其C++实现
- git版本管理软件——git日常管理代码
- 在MVC中实现MongoDB的分页查询
- Vue开篇杂谈--回首app开发模式
- jsp的四个作用域 page request session page