Golang版protobuf编译
官方网址:
https://developers.google.com/protocol-buffers/ (需要翻墙)
代码仓库:
https://github.com/google/protobuf (C++)
https://github.com/golang/protobuf (Golang)
https://developers.google.com/protocol-buffers/docs/gotutorial (英文版教程)
本文以下部分按照英文版教程操作(windows OS):
- 下载编译器,下载页面 https://github.com/google/protobuf/releases
最新发布版为V3.2.0,Url:https://github.com/google/protobuf/releases/download/v3.2.0/protoc-3.2.0-win32.zip
2. 在cmd中运行如下命令,(前提:golang环境已经正确配置)
go get -u github.com/golang/protobuf/protoc-gen-go
下载完成在,在$GOPATH\src\github.com\golang\protobuf中可以查看源码
在$GOPATH\bin中可以找到生成的protoc-gen-go.exe,这是golang版的编译插件。
要保证$GOPATH\bin目录在环境变量$PATH中,这样protoc.exe就可以找到这个插件了。
通过以上两步,就完成了protobuf的golang编译环境准备。
下面将以源码包中的example代码为例进行编译。在https://github.com/google/protobuf/releases 页面下载V3.2.0版本的源码。
https://github.com/google/protobuf/archive/v3.2.0.zip
将压缩包解压到 D:\protobuf-3.2.0
D:\protobuf-3.2.0\examples 目录包含了golang示例代码。在该目录下创建名为tutorial的文件夹,将addressbook.proto移动到tutorial文件夹下,将前面下载的protoc.exe也拷贝到该目录下。
在命令行中,切换到D:\protobuf-3.2.0\examples\tutorial,执行命令
protoc --go_out=.\ addressbook.proto
生成 addressbook.pb.go 源文件,
修改 D:\protobuf-3.2.0\examples\add_person.go,将pb "github.com/google/protobuf/examples/tutorial"改为
pb "./tutorial"
命令行切换到D:\protobuf-3.2.0\examples目录执行,go build add_person.go
在该目录下生成了 add_person.exe
命令行执行 add_person.exe .\book.bin
按照提示,输入相关信息,录入完成后,数据被序列化到book.bin二进制文件中。
编译list_people.go,执行 list_people.exe .\book.bin命令可以查看反序列化之后的信息。
Golang版protobuf编译的更多相关文章
- Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)
Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...
- APUE学习--第三版apue编译
第三版apue编译: 1. 首先在 http://www.apuebook.com/ 下载源码解压: tar zxvf src.3e.tar.gz 看完Readme可知,直接执 ...
- [Golang] kafka集群搭建和golang版生产者和消费者
一.kafka集群搭建 至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了. 1. 下载zookeeper https://zookeeper.apache.org/releases.ht ...
- Linux - Unix环境高级编程(第三版) 代码编译
Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebo ...
- 微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结
1.引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了. 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟.如今用公司配的 17 年款 27-inch iMac 编译要接近半小时:偶 ...
- golang 使用 protobuf 的教程
1.下载protobuf的编译器protoc 地址: https://github.com/google/protobuf/releases window: 下载: protoc-3.3.0-w ...
- protobuf编译出错的解决方案(iOS,OSX)
protobuf 最近使用protobuf,变编译工具时遇上一点问题.现在附上解决方案 编译过程 完全参照 https://github.com/alexeyxo/protobuf-objc 编译出错 ...
- protobuf编译报错
在下载protobuf进行编译的时候会出现如图所示的错误 修改 C:\protobuf-2.4.1\gtest\include\gtest\internal\gtest-tuple.h(C:是我解压p ...
- protobuf 编译安装
1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://developers.google.com/protocol-buffers 2.下载最新的protobuf ...
随机推荐
- CAGradientLayer颜色渐变器
使用CAGradientLayer可以实现颜色的渐变, 我们先看下头文件 @interface CAGradientLayer : CALayer @property(nullable, copy) ...
- 自动化测试框架中关于selenium api的二次封装
不多说,直接看代码如下: #coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chai ...
- Hadoop学习笔记-001-CentOS_6.5_64_连接外网设置
参考:http://blog.csdn.net/u010270403/article/details/51444677 虚拟机中共五个centos系统,每个系统有两个用户root和hadoop:cdh ...
- 利用终端命令实现进入ntfs分区有两种方法。
一.手动设置ubuntu自动挂载Windows分区方法:1.先用FDISK命令查看一下磁盘的UUID $sudo fdisk -l /dev/sda1 * 1 851 6835626 83 Linux ...
- css实现页面居中的一种方法
在网页制作的过程中,为方便读者的阅读,会把网页内容限定在一个较小的方框中,并居中显示,如何实现这一功能呢? 1)把正文放在一个<div>标签中,只要这个标签居中整个网页就居中了. < ...
- C语言的函数类型
C语言的函数类型与返回值类型不一致时出现,是以函数类型为标准; 而如果在java与c#语言中上述情况是编译错误的;
- Java设计和实现方法
方法签名 方法名是驼峰命名 方法名最好能说明该方法主要做什么 方法参数的名字最好能说明该参数的意义 方法参数个数最好低于6个 例如: public void setTitleVisible(int l ...
- 在2017年,如何将你的小米4刷上Windows 10 mobile?
众多攻略集大成者!资深软粉亲测有效! 参考教程: http://bbs.xiaomi.cn/t-11814358 http://bbs.xiaomi.cn/t-11736827 问:刷机前,我需要做什 ...
- Cassandra 学习笔记 - 1 - 关于Cassandra
摘要 - Cassandra 的历史 Cassandra能做什么 Apache Cassandra最早是Facebook为了改进他们的Inbox搜索功能,由Avanash Lakshman和Prash ...
- 缓冲流自动把getchar()填充
#include"stdio.h" #include"conio.h" #include<stdlib.h> int main() { char c ...