protobuf

一. 什么是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的缺点
- 应用不够广

- 二进制格式导致可读性差(二进制格式)


----安装----

如果你准备在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里有。





















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值