Protobuf详解
按:
新公司前端后端,使用的数据化方式是protobuf (Protocol Buffer)。
一,什么是Protobuf
官方文档给出的是:
a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.
二,Protobuf的优点
1,性能好,效率高
2,代码生成机制,数据解析类自动生成
3,支持向后兼容和向前兼容
4,支持多种编程语言(java,c++,python)
5,参考文档:http://blog.csdn.net/caisini_vc/article/details/5599468
三,Protobuf的缺点
1, 应用不够广
2, 二进制格式导致可读性差(二进制格式)
3, 缺乏自描述
官方文档描述如下:for instance, protocol buffers would not be a good way to model a text-based document with markup (e.g. HTML), since you cannot easily interleave structure with text
4, 参考文档:http://blog.csdn.net/caisini_vc/article/details/5599468
为什么要安装protobuf
一般出现问题场景
1. Xcode编译提示错误:google/protobuf/stubs/common.h file not found
2. 终端执行protoc --version 提示没有安装过
什么是protobuf
protobuf(Google Protocol Buffers)
Google提供一个具有高效的协议数据交换格式工具库(类似Json)。
但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。
怎么判断有没有安装过protobuf?
终端中执行:protoc --version
如何安装
安装protobuf-2.4.1
下载链接: vdisk.weibo.com/s/tYlk6JrNUYTY
安装protobuf-2.5.0
下载链接: download.csdn.net/download/px_dn/7414673
下载完成后
第一步:
如果是2.4.1版本,在终端执行:tar zxvf protobuf-2.4.1.tar.gz
如果是2.5.0版本,在终端执行:tar zxvf protobuf-2.5.0.tar.gz
第二步:
如果是2.4.1版本,在终端执行:cd protobuf-2.4.1
如果是2.5.0版本,在终端执行:cd protobuf-2.5.0
第三步:
在终端执行:./configure
第四步:
在终端执行:make
第五步:
在终端执行:make check
第六步:
在终端执行:make install
以后六步执行完成,查看是否安装成功
执行命令:protoc --version
如果出现libprotoc 2.4.1或者libprotoc 2.5.0则说明安装成功
如何卸载protobuf
在终端执行
1. which protoc
注:whick protoc后会出现一个路径,一般是 /usr/local/bin/protoc
这里默认称 /usr/local/bin/protoc为protoc_path
2. sudo rm 第一步中protoc_path
注:一般是sudo rm /usr/local/bin/protoc
即可完成卸载
可能会出现的问题
如果安装的是2.4.1版本。
在安装过程中,
执行完第四步:make
如果出现
3 errors generated.
make[2]: *** [message.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
继续执行下去不会执行成功
解决方案:
1. 打开protobuf-2.4.1/src/google/protobuf/message.cc文件
2. 添加 #include
然后关闭文件,重新执行第四步:make 即可
本文出自
链接:http://mikewang.blog.51cto.com/3826268/1432136
链接:http://www.jianshu.com/p/0a70eef1bd4a
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。