更不便的在微信公众号阅读文章能够关注公众号:海生的go花园

一、装置protoc以及插件

在第二章,咱们介绍了,如何写一个.proto文件。
当咱们有了一个.proto文件,揭晓来,咱们就是应用protoc命令编译.proto文件,生成对应go文件。

1.1 装置protoc命令

brew install protobuf

1.2 装置protobuf插件

1.2.1、装置protoc-gen-go插件,--go_out选项

用来生成.pb.go文件,用来解决message等失常的类型。

go install google.golang.org/protobuf/cmd/protoc-gen-go

1.2.2、装置protoc-gen-go-grpc插件,--go-grpc_opt选项

用来解决grpc相干的程序。

google.golang.org/grpc/cmd/protoc-gen-go-grpc

二、应用protoc命令生成go代码

2.1 初始化go我的项目

首先咱们关上grpc-demo1目录(在第二章创立的),而后go mod init。初始化这个go我的项目。

$ cd grpc-demo1$ go mod init github/hisheng/grpc-demo1

此时查看咱们的目录,执行tree命令。

➜  grpc-demo1 git:(master) $ tree.├── api│   └── hello.proto├── go.mod└── go.sum1 directory, 3 files

咱们的目录多了 go.mod文件以及go.sum。

2.2 应用protoc命令生成go代码

当初终于到了咱们生成理论go代码的时候了,让咱们在grpc-demo1执行如下命令。

protoc --go_out=. --go_opt=paths=source_relative \       --go-grpc_out=. --go-grpc_opt=paths=source_relative \       api/hello.proto

咱们终于执行了protoc命令了,此时咱们减少了两个参数选项。

--go_out      生成了 hello.pb.go 文件--go-grpc_out 生成了 hello_grpc.pb.go 文件

此时咱们再查看grpc-demo1,执行tree命令

➜  grpc-demo1 git:(master) ✗ tree.├── api│   ├── hello.pb.go│   ├── hello.proto│   └── hello_grpc.pb.go├── go.mod└── go.sum1 directory, 5 files

能够看到刚生成的hello.pb.go和hello_grpc.pb.go两个go文件。

2.3 应用go mod tidy 下载依赖库

咱们发现hello.pb.go,以及hello_grpc.pb.go文件中,有一些go依赖没有下载。此时再下载一下。
在grpc-demo1目录执行

go mod tidy 

至此,咱们生成的go代码,就没有问题了。