一. 什么是Protobuf
官方文档给出的是:
a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.
二. Protobuf的优点
- 性能好,效率高
- 代码生成机制,数据解析类自动生成
- 支持向后兼容和向前兼容
- 支持多种编程语言(java,c++,python)
三. Protobuf的缺点
- 应用不够广
----Protobuf Runtime安装----
官方文档给出的是:
a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.
二. Protobuf的优点
- 性能好,效率高
- 代码生成机制,数据解析类自动生成
- 支持向后兼容和向前兼容
- 支持多种编程语言(java,c++,python)
三. Protobuf的缺点
- 应用不够广
- 二进制格式导致可读性差(二进制格式)
----安装----
如果你准备在C++中使用protocol,你可以通过源码来安装。去git上下载源码:
// github
https://github.com/google/protobuf
下载完毕后,在根目录内进入src文件夹。打开README.md有详细的安装步骤。
在编译之前,下列软件是必须的:
* autoconf
* automake
* libtool
* curl (used to download gmock)
* make
* g++
* unzip
如果你用的是ubuntu系统,则可以通过下边的命令来安装这些软件:
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
如果是其他的系统,则用相应的包管理工具来安装。
继续
如果你是从GitHub上下载的源码,则需要执行:
$ ./autogen.sh
该指令会下载gmock到当前目录,用于生成编译需要的各种文件,例如makefiles。如果你使用的是release包,则可以跳过此步骤,因为包里已经包含了gmock以及其配置脚本等文件。
最后,一步步的执行:
// 在根目录下执行
$ ./configure
// 进入src目录下执行
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
检查安装是否成功:
protoc --version
如果成功,则会输出版本号信息,例如:libprotoc 2.5.0;如果有问题,则会输出错误内容。
错误及解决方法:
protoc: error while loading shared libraries: libprotoc.so.8: cannot open shared
错误原因:
protobuf的默认安装路径是/usr/local/lib,而/usr/local/lib 不在Ubuntu体系默认的 LD_LIBRARY_PATH 里,所以就找不到该lib
解决方法:
1. 创建文件 /etc/ld.so.conf.d/libprotobuf.conf 包含内容:
/usr/local/lib
2. 输入命令
sudo ldconfig
这时,再运行protoc --version 就可以正常看到版本号了
----其他语言的安装----
对于非C++的用户,最简单的安装方法就是事先编译好的安装包:
https://github.com/google/protobuf/releases
----Protobuf Runtime安装----
学习protobuf最好的方法是:
https://developers.google.com/protocol-buffers/docs/tutorials
如果想看实际的代码例程,在根目录下的examples里有。