go 使用 Protobuf

Protobuf核心的工具集是C++语言开发的,在官方的protoc编译器中并不支持Go语言。要想基于上面的hello.proto文件生成相应的Go代码,需要安装相应的插件。首先是安装官方的protoc工具,可以从 https://github.com/google/protobuf/releases 下载。然后是安装针对Go语言的代码生成插件,可以通过

下载protobuff

https://github.com/google/protobuf/releases

 我是win10 系统64位的  ,下载相应的包

2.将下载的文件放入D盘,然后添加环境变量

 

 3.测试环境变量是否OK

 4.下载 protoc-gen-go

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

若如上命令执行失败,请配置代理
go env -w GO111MODULE=on  //打开模块
go env -w GOPROXY=https://goproxy.cn,direct //启用代理

安装gRPC

go get -u google.golang.org/grpc

不过由于国内的网络原因上面的命令可能不会成功

执行下面的多条命令来代替

git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net

git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text

git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto

git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc

protoc-gen-go.exe  存放的位置在你的go安装目录下的bin目录下面

 如果没有的话 在命令行输入 go env  查看  GOPATH= 的路径,看一下是否存放在 GOPATH 下面 的bin 目录中

 5.然后将 protoc-gen-go.exe 放入 protoc.exe 安装目录中

 6.创建 hello.proto 内容如下

syntax = "proto3";
option go_package="./;hello";
package service;
message ProdRequest{
    int32 Prod_id = 1;
}

message ProdResponse{
    int32 Prod_stock = 1;
}

说明 

option go_package = "path;name";
 
path 表示生成的go文件的存放地址,会自动生成目录的。
name 表示生成的go文件所属的包名

然后通过以下命令生成相应的Go代码:

protoc --go_out=. hello.proto

 常用命令

protoc编译

protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto
# $SRC_DIR: .proto 所在的源目录
# --cpp_out: 生成 c++ 代码
# $DST_DIR: 生成代码的目标目录
# xxx.proto: 要针对哪个 proto 文件生成接口代码

​​​​​​​

protoc --go_out=. ./helloworld.proto 

protoc --go_out=plugins=grpc:. hello.proto 

protoc --go-grpc_out=. hello.proto 

大功告成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值