官方网址:

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):

  1. 下载编译器,下载页面 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编译的更多相关文章

  1. Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)

    Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...

  2. APUE学习--第三版apue编译

    第三版apue编译:     1. 首先在  http://www.apuebook.com/   下载源码解压:      tar zxvf src.3e.tar.gz 看完Readme可知,直接执 ...

  3. [Golang] kafka集群搭建和golang版生产者和消费者

    一.kafka集群搭建 至于kafka是什么我都不多做介绍了,网上写的已经非常详尽了. 1. 下载zookeeper  https://zookeeper.apache.org/releases.ht ...

  4. Linux - Unix环境高级编程(第三版) 代码编译

    Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebo ...

  5. 微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结

    1.引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了. 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟.如今用公司配的 17 年款 27-inch iMac 编译要接近半小时:偶 ...

  6. golang 使用 protobuf 的教程

    1.下载protobuf的编译器protoc 地址: https://github.com/google/protobuf/releases window:    下载: protoc-3.3.0-w ...

  7. protobuf编译出错的解决方案(iOS,OSX)

    protobuf 最近使用protobuf,变编译工具时遇上一点问题.现在附上解决方案 编译过程 完全参照 https://github.com/alexeyxo/protobuf-objc 编译出错 ...

  8. protobuf编译报错

    在下载protobuf进行编译的时候会出现如图所示的错误 修改 C:\protobuf-2.4.1\gtest\include\gtest\internal\gtest-tuple.h(C:是我解压p ...

  9. protobuf 编译安装

    1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://developers.google.com/protocol-buffers 2.下载最新的protobuf ...

随机推荐

  1. Java反射机制示例

    链接: http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html package com.stono.reftest; imp ...

  2. vue.js环境搭建

    安装 nodejs 地址 :https://nodejs.org/en/ npm安装最新版本 更新npm :npm update -g 安装淘宝镜像 npm install -g cnpm --reg ...

  3. 转载:深入探讨 Java 类加载器

    转载地址 : http://www.ibm.com/developerworks/cn/java/j-lo-classloader/ 深入探讨 Java 类加载器 类加载器(class loader) ...

  4. [CSS3] 学习笔记-CSS3选择器详解(一)

    1.属性选择器 在CSS3中,追加了3个属性选择器,分别为:[att*=val].[att^=val]和[att$=val],使得属性选择器有了通配符的概念. <!doctype html> ...

  5. C++编程练习(15)----“排序算法 之 归并排序“

    归并排序 归并排序(Merging Sort)的原理: 假设初始序列含有 n 个记录,则可以看成是 n 个有序的子序列,每个子序列的长度为1,然后两两归并,得到 [n/2] ([ x ] 表示不小于 ...

  6. C++编程练习(4)----“实现简单的栈的链式存储结构“

    如果栈的使用过程中元素数目变化不可预测,有时很小,有时很大,则最好使用链栈:反之,如果它的变化在可控范围内,使用顺序栈会好一些. 简单的栈的链式存储结构代码如下: /*LinkStack.h*/ #i ...

  7. C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 38 章 实体框架核心(下)),不对的地方欢迎指出与交流. 章节出自<Professional C# 6 ...

  8. C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 39 章 Windows 服务(下)),不对的地方欢迎指出与交流. 章节出自<Professional C ...

  9. Struts2系列笔记(4)---Ation类访问servlet

    Ation类访问servlet Ation类有三种方式servlet: (1)间接的方式访问Servlet API  ---使用ActionContext对象 (2)  实现接口,访问Action时完 ...

  10. STAR法则

    现在相信大部分跳槽的朋友都已经将工作辞了,正在找工作的这个漩涡中,还没辞掉的可能也快了,找工作的这段时间是一个非常考验你的扛打击能力的时候.像网上投了几十家简历,只有几家邀请面试的,其他都是连面试阶段 ...