参考文章:
一、简单介绍
本文开发环境,均为 windows 环境,mac 环境其实也类似 ~
① 编译proto文件,相关插件 简单介绍:
- protoc 是编译器,用于将.proto文件编译成代码;
- protoc-gen-go 是一个插件,用于生成Go语言的数据结构代码;
- protoc-gen-go-grpc 是另一个插件,用于生成Go语言的gRPC服务代码。这三个工具共同支持在Go语言环境中使用protobuf和gRPC。
命令示例:protoc --go_out=. --go-grpc_out=. *.proto
在编译.proto
文件时,go_out
和go-grpc_out
这两个参数分别会调用以下文件:
go_out
:这个参数会调用protoc-gen-go
插件。protoc-gen-go
插件的主要作用是将.proto
文件转换为Go语言的代码。生成的文件通常包括消息(message)和枚举(enum)类型的定义,以及序列化和反序列化的方法。go-grpc_out
:这个参数会调用protoc-gen-go-grpc
插件。protoc-gen-go-grpc
插件的主要作用是将.proto
文件中的gRPC服务定义转换为Go语言的代码。生成的文件通常包括gRPC服务接口和客户端存根(client
stub)的定义。 这两个插件通常一起使用,以便在编译.proto
文件时生成完整的Go代码,包括消息类型和gRPC服务接口。
② go get 和 go install 命令的使用场景:
- 当你需要获取一个包的源代码并可能需要对其进行修改时,使用
go get
。- 当你需要编译并安装一个包,以便使用它的可执行文件或库文件时,使用
go install
。
环境:
- go版本: