前言

protoc是一款用C++编写的工具,其可以将proto文件翻译为指定语言的代码。在go-zero的微服务中,我们采用grpc进行服务间的通信,而grpc的编写就需要用到protoc和翻译成go语言rpc stub代码的插件protoc-gen-go

本文演示环境

  • mac OS
  • protoc 3.14.0

    protoc安装

  • 进入protobuf release 页面,选择适合自己操作系统的压缩包文件

  • 解压protoc-3.14.0-osx-x86_64.zip并进入protoc-3.14.0-osx-x86_64

    1. $ cd protoc-3.14.0-osx-x86_64/bin
  • 将启动的protoc二进制文件移动到被添加到环境变量的任意path下,如$GOPATH/bin,这里不建议直接将其和系统的一下path放在一起。

    1. $ mv protoc $GOPATH/bin

    Tip $GOPATH为你本机的实际文件夹地址

  • 验证安装结果

    1. $ protoc --version
    1. $ protoc --version

protoc-gen-go安装

  • 下载安装protoc-gen-go
    1. $ go get -u github.com/golang/protobuf/protoc-gen-go@v1.3.2

  1. go: found github.com/golang/protobuf/protoc-gen-go in github.com/golang/protobuf v1.4.3
  2. go: google.golang.org/protobuf upgrade => v1.25.0
  • protoc-gen-go移动到被添加环境变量的任意path下,如$GOPATH/bin,由于go get后的二进制本身就在$GOPATH/bin目录中,因此只要确保你的$GOPATH/bin在环境变量即可。

    Warning protoc-gen-go安装失败请阅读常见错误处理

window 安装protoc protoc-gen-go-grpc

1、如何在window下,根据*.proto 生成代码么?

image.png

2、下载protoc

https://github.com/protocolbuffers/protobuf/releases/download/v3.12.3/protoc-3.12.3-win64.zip
解压后,放到$GOPATH/bin目录下即可
image.png

3、如何生成protoc-gen-go-grpc ?

目前在github上,还没有提供release版本,需要自己根据源码生成
https://www.grpc.io/docs/languages/go/quickstart/

  1. git clone -b v1.30.0 https://github.com/grpc/grpc-go
  2. cd cmd/protoc-gen-go-grpc
  3. go install .

image.png
image.png
image.png

4、生成*.pb.go代码

  1. protoc --plugin=protoc-gen-go=$protoc-gen-go的路径 --go_out . helloworld.proto

image.png

5、如何生成*_grpc.pb.go

  1. protoc --plugin=protoc-gen-go=$protoc-gen-go的路径 --go-grpc_out --go_out . helloworld.proto

image.png


原文链接

https://go-zero.dev/cn/protoc-install.html https://blog.csdn.net/u011582922/article/details/107346695