iOS开发 OC语言 protobuf

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

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(iOS开发 OC语言 protobuf)