1.下载对应系统的protoc安装包
2.在windows系统下配置protoc的环境变量(其它系统不演示了)
解压出来放到你想要放到盘下
环境变量中添加
在命令行中输入protoc,正常显示,就说明配置成功了
3.protoc-gen-go 的安装
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
如果从proto转go中提示如下,则需要配置在环境变量中配置gopath的路径下的bin目录
'protoc-gen-go' 不是内部或外部命令,也不是可运行的程序或批处理文件。
如果不知道gopath路径可以运行以下命令
go env
4.proto转换为go
创建proto文件
// 指定的当前proto语法的版本,有2和3
syntax = "proto3";
//option go_package = "path;name"; path 表示生成的go文件的存放地址,会自动生成目录的
//name 表示生成的go文件所属的包名
option go_package="../service";
// 指定等会文件生成出来的package
// 可以通过option go_package也可以设置包名,例common/proto 会在当前目录下生成common/proto目录,包名proto
package service;
//message关键字,可以理解为golang中的结构体
//变量后面的"赋值",注意并不是赋值,而是定义这个变量在这个message中的位置
message User {
string username = 1;
int32 age = 2;
}
创建完成后在proto文件所在目录下打开cmd,运行以下命令
protoc --go_out=. *.proto
以上的option go_package="../service";和package service;需要写在proto文件中,否则会报以下错误
正常运行之后
5.使用protoc-gen-go-grpc(Go调用grpc的插件)
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
安装后会在GOPATH的bin目录下生成一个protoc-gen-go-grpc.exe
运行以下命令,可以调用protoc-gen-go-grpc插件将proto文件转换为grpc相关的go文件
protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative helloworld.proto
这种是简化的
protoc --go_out=. --go-grpc_out=. *.proto
生成以下代码