1、安装
ubuntu下的安装很简单(虽然要安装几个包):
具体参见:
https://github.com/google/protobuf/blob/master/src/README.md
从github下载了源码后:
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
只编译静态库:
./configure --disable-shared
2、编译
.proto文件编译:
protoc addressbook.proto --cpp_out . # 用于生成C++头文件和.cc文件
protoc addressbook.proto --python_out . #用于生成python相应的文件
注意: 可以通过 -I 参数更改搜索路径, 所有文件的路径必须为绝对路径,,
比如官方给的例子(除了上面那种所有文件都在当前文件夹的情况):
protoc -I=$SRC_DIR --python_out=$DST_DIR $SRC_DIR/addressbook.proto
c++文件编译:
下面命令中的pkg-config --cflags --libs protobuf会生成proto buff所需的编译选项(头文件目录,-pthread等)
c++ my_program.cc my_proto.pb.cc `pkg-config --cflags --libs protobuf`
3、教程
python版:
https://developers.google.com/protocol-buffers/docs/pythontutorial
可以print(proto)来看proto实例的内容
C++版:
https://developers.google.com/protocol-buffers/docs/cpptutorial
每个proto类都有一个DebugString()方法,用于返回供人看的内容
完成编译命令:
#只能用g++ 用gcc不行!
echo compile c++ part
protoc addressbook.proto --cpp_out .
g++ writeAddress.cc addressbook.pb.cc -o write.out `pkg-config --cflags --libs protobuf`
g++ readAddress.cc addressbook.pb.cc -o read.out `pkg-config --cflags --libs protobuf`
echo use ./write.out add.txt to generate address file
echo use ./read.out add.txt to read address file
echo compile python part
protoc addressbook.proto --python_out .
echo use python writeAddress.py add.txt to generate address file
echo use python readAddress.py add.txt to read address file
官方教程中有一些错误,,完整的代码(包含编译用的shell命令)见附件
分享到:
相关推荐
这篇学习笔记主要关注Caffe的基本结构、安装过程和核心组件。 首先,让我们来看一下Caffe的安装。安装Caffe通常遵循官方网站的教程,但在某些操作系统如OS X 10.9和Ubuntu 14.04上可能会遇到一些挑战。主要的依赖项...
**WebService的轻量级实现——Hessian学习笔记** 在IT行业中,WebService作为一种常见的跨平台、跨语言的通信机制,被广泛应用于系统间的交互。然而,传统的SOAP(Simple Object Access Protocol)协议实现的...
本学习笔记将从零开始,带你一步步走进 Go 语言的世界。 ### 基础语法 Go 语言的基础语法简洁明了,易于学习。首先,我们来看看变量的声明: ```go var age int = 25 ``` 这里,`int` 是数据类型,`age` 是变量名...
本文将深入探讨标题提及的“Websocket笔记三:egret + skynet使用protobuf”这一主题,结合描述中的源代码,我们将围绕Egret、Skynet以及Protocol Buffers(protobuf)这三个关键词展开讨论。 首先,Egret是一个...
`protobuf`(Protocol Buffers)是由Google开发的一种高效的数据序列化机制,它支持多种编程语言,并能以紧凑的形式存储结构化的数据。`protobuf`不仅被广泛应用于Google内部的大量项目中,也被开源社区所采纳,成为...
此外,还有14个Protocol Buffers文件,这是Google开发的一种数据描述语言,用于序列化结构化数据,类似于XML或JSON,但在性能上有较大优势。项目中还包括6个Go源代码文件,这是Go语言开发的源代码文件,可以编译成可...
2. 数据结构学习笔记:作为标题中的一个部分,这部分很可能是文档的主体,它将介绍数据结构的基础知识,以及在应用protobuf-net进行网络通信时,如何高效地设计和利用数据结构来存储和传递信息。内容可能会包含数据...
- **过程**: 使用Protocol Buffers、LevelDB等工具处理数据,计算出的均值图像存储为二进制文件。 **模型定义** - **参考**: 使用NIPS2012论文中的模型。 - **差异**: 训练集图像进行随机镜像变换,验证集不进行...
https://codeload.github.com/protocolbuffers/protobuf/zip/refs/heads/main ``` **2. 配置与编译** - 进入下载的protobuf-master目录: ``` $ cd protobuf-master/ ``` - 自动生成configure配置文件: `...
3. **protobuf-java-3.11.4.jar**:Protocol Buffers(简称protobuf)是Google的一种数据序列化协议,用于跨平台的数据交换。在Elasticsearch中,可能用于内部通信或者数据存储。 4. **httpclient-4.5.13.jar** 和 ...
9. **Apache Avro**和**Protocol Buffers**:数据序列化工具,可以高效地编码和传输数据。 10. **测试和调试**:在处理大数据时,单元测试和集成测试必不可少,JUnit和Mockito等工具可以帮助进行这些工作。 通过...