go|安装go ------protobuf

https://github.com/protocolbuffers/protobuf protobuf编译器安装
如果使用的是c++, 安装教程在这里
如果不是c++,安装教程在这里:https://github.com/protocolbuffers/protobuf/releases
根据自己os平台,下载预编译好的:protoc-$VERSION-$PLATFORM.zip
protobuf 运行时安装
安装go语言的。教程在这里:https://github.com/golang/protobuf
最简单的办法:

go get -u github.com/golang/protobuf/protoc-gen-go

编译器protoc-gen-go, 如果没有设置$GOBIN,将会被安装到$GOPATH/bin下。
编译器protoc-gen-go必须在path目录下,编译的时候才能找到。
如果需要下载指定版本的protoc-gen-go,那么:
GIT_TAG="v1.2.0" # change as needed go get -d -u github.com/golang/protobuf/protoc-gen-go git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG go install github.com/golang/protobuf/protoc-gen-go

protbuf组成
一个协议编译器插件,用来生成 go源文件,一旦被编译即可访问和管理协议缓冲区;
一个实现运行时编码解码和访问协议缓冲区的库。
在go里面使用缓冲区协议
一旦被安装,第一步首先编译.proto文件,第二部使用支持的库引入到程序中。
protoc --go_out=. *.proto

这里的.代表的是当前目录。可以根据需求来改变需要生成的.pb.go的文件的位置 。
编译好的go源文件将以.pb.go为后缀。
【go|安装go ------protobuf】包和输入路径
协议缓冲区也有包的概念,与go的package不太一样。
在生成的go源码里面,每个源.proto文件都与一个单独的go包关联。
使用go_package选项来指定此包的名称和导入路径。
option go_package = "github.com/golang/protobuf/ptypes/any";

如果没有go_package选项协议缓冲区将尝试派生包名称和导入路径
下载protobuf
https://github.com/protocolbuffers/protobuf/releases
根据电脑的版本和位数选择下载:我的电脑是win 64位
go|安装go ------protobuf
文章图片

解压protobuf 比如我解压的目录:D:\work\protoc-3.7.1-win64
进入D:\work\protoc-3.7.1-win64\bin,得到:protoc.exe
安装protobuf 把protoc.exe copy到GOPATH的bin目录下,在下次编译.proto文件的时候即可直接使用命令:
protoc --go_out=. xxx.proto

下载protoc-gen-go
git clone https://github.com/golang/protobuf.git

安装protoc-gen-go 进入github.com/golang/protobuf目录,一句句的执行以下命令:
GIT_TAG="v1.2.0" # change as needed go get -d -u github.com/golang/protobuf/protoc-gen-go git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG go install github.com/golang/protobuf/protoc-gen-go

就会在$GOPATH/bin下安装好protoc-gen-go.exe

    推荐阅读