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位
文章图片
解压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
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务
- GO|GO,GO,GO!
- Go成长之路|go中判断空字符串、nil和len(t)的用法
- pom.xml文件第一行报错
- go编译tools
- go grpc安装与使用
- goroutine 调度原理