常用手册|protobuf-IOS简单总结(编译、环境搭建)
什么是protobuf?
Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.
【常用手册|protobuf-IOS简单总结(编译、环境搭建)】
一、安装流程 (1)进入终端 跳转至protobuf文件夹. cd xxxxxxxxxxxxxx(路径) (2)切换用户身份. sudo su(3)执行 ./configure (4)执行 make (5)执行 make check(可能message.cc会报错,解决办法请看下面) (6)执行 make install (7)检查是否安装成功,执行 protoc —version
二、安装protobuf编译器时遇到的问题(1)message.cc 报错,原因是因为少引了一个库 (据说可能是因为clang跟GCC不同的原因) 解决办法:在message.cc中 加入 #include
环境:XCODE5.0protobuf 2.4.1MAC OS 10.9.1
三、protobuf.a静态库的制作,跟平时的一样 (1)新建一个静态库工程 (2)删除原生成.h和.m文件 (3)导入protobuf文件夹中的src/google的文件夹 (4)删除xcode中google/compiler文件夹 (5)删除xcode中google下所有的unittest文件(包括子文件夹),包括test_util和test_util_lite(PS:挺多的) (6)在项目配置 Header Search Paths中引入相关路径xxxx/src等,(XCODE5中 compiler for C/C++/Objective-C 默认是Apple LLVM 5.0,clang的,不过一样可以用,在终端中可以查看版本号, 命令:clang -v) (7)到Build Phases中copy ties下注入src/google相关头文件
四、protobuf生成C++文件 终端中输入以下命令生成C++文件 protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto
$SRC_DIR:文件所在路径
$DST_DIR:输出路径 例如:protoc -I=/Users/dale_hui/Pictures/ --cpp_out=/Users/dale_hui/Pictures//Users/dale_hui/Pictures/wechat.protoPS:protobuf2.5生成出来的c++文件,在2.4.1不通用 生成出来的文件分别为.h和.cc
五、简单的定义 message SendUp {
required bytes voice = 1;
optional int32 result_per_page = 3 [default = 10];
repeated int32 samples = 4 [packed=true];
}
格式为:限定修饰符 数据类型 字段名 =字段数字别名 [字段默认值]
[packed=true]可以保证更高效的编码
限定修饰符的说明(来自官网) required: a well-formed message must have exactly one of this field. optional: a well-formed message can have zero or one of this field (but not more than one). repeated: this field can be repeated any number of times (including zero) in a well-formed message. The order of the repeated values will be preserved.
至于message SendUp{}有些像声明结构体一样,
当然它可以嵌套在message中
,编译成C++后,使用时,就跟普通的类使用没有区别.
枚举值的使用(此处跟C++有区别,用的是 ’;
’ 号隔开,而不是 ‘,') enum Foo {
VALUE_A = 1;
VALUE_B = 5;
VALUE_C = 1234;
}
肉眼目测protobuf 字符串的结构大概为: \n字符串长度数据内容长度大概是(2字节+2字节+N字节)
注释:protobuf中则可以使用双斜杠风格 ‘ // ‘ 导入定义: import "myproject/other_protos.proto”;
但愿以上总结能避免你们少跳坑
更多的使用可参考Google文档: https://developers.google.com/protocol-buffers/docs/proto?hl=en
protobuf下载地址https://code.google.com/p/protobuf/downloads/listGoogle快速使用小例子https://code.google.com/p/protobuf/
推荐阅读
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 数组常用方法一
- 最有效的时间管理工具(赢效率手册和总结笔记)
- 幼小衔接家长手册(欢迎来到一年级读后感)
- D014+6组银桥+《人生效率手册》读书笔记
- 常用git命令总结
- java|java 常用知识点链接
- 日反思成功效率手册0114-2019爱诺燕儿(周1)D621
- neo4j|neo4j cql语句 快速查询手册
- c#常用网址记录