关于网站建设的简历模板,wordpress文件权限,西昌新站seo,学生网站做兼职参考文章#xff1a;
安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客
一、简单介绍
本文开发环境#xff0c;均为 windows 环境#xff0c;mac 环境其实也类似 ~ ① 编译proto文件#xff0c;相关插件 简单介绍#xff1a; protoc 是编译器#xff0c;用于将…参考文章
安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客
一、简单介绍
本文开发环境均为 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版本go1.19注意go版本过低可能导致 go install 安装会报错下面有介绍 二、安装
建议虽然有三种方法github直接下载二进制使用 go install 安装手动 git clone 代码并安装但不同插件安装方法略有不同。
protoc 和 protoc-gen-go 等二进制插件可以通过github来直接下载而 protoc-gen-go-grpc 则需要通过 go install 安装。
方法一github直接下载各插件对应的二进制安装包
参考安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 步骤github下载对应插件的压缩包再解压放在 $GOPATH/bin 目录下即可需提前配好Go相关环境变量 protoc 安装 https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.4如下图示例可按需选择对应版本 解压后可得到对应系统的可执行文件如protoc.exe将其放在$GOPATH/bin 目录下即可。 检查是否安装成功protoc --version protoc-gen-go 安装 https://github.com/protocolbuffers/protobuf-go/tags 解压后可得到对应系统的可执行文件如protoc-gen-go.exe将其放在$GOPATH/bin 目录下即可。 检查是否安装成功protoc-gen-go --version protoc-gen-go-grpc 安装 比较特殊无法直接通过github下载二进制建议使用 go install 命令安装也就是方法二 go install google.golang.org/grpc/cmd/protoc-gen-go-grpcv1.3.0 最终可得protoc-gen-go-grpc.exe将其放在$GOPATH/bin 目录下即可。 检查是否安装成功protoc-gen-go-grpc --version 方法二使用Go模块管理工具 一步到位但有些依赖可能无法顺利下载考虑设置GOPROXY
参考安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客
安装 protoc
# 根据自己电脑系统设置对应的GOOS
# windows
go env -w GOOSwindows设置完之后记得还原
# linux
go env -w GOOSlinux设置完之后记得还原# 二进制 下载链接可能无法通过go install 安装直接去github下载二进制即可
https://github.com/protocolbuffers/protobuf/tags
# 检查是否安装成功
protoc --version安装 protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-gov1.31.0
# 检查是否安装成功
protoc-gen-go --version# 如果下载失败可以考虑开启代理
go env -w GOPROXYhttps://goproxy.cn,direct如果 go install 报错如下图可能是因为你的 go 版本过低导致可以考虑升级 go 版本比如升级到 go1.19。 报错package google.golang.org/protobuf/cmd/protoc-gen-gov1.31.0: can only use pathversion syntax with ‘go get’ 解决升级 go 版本https://golang.google.cn/dl/ 安装 protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpcv1.3.0
// 检查是否安装成功
protoc-gen-go-grpc --version所有插件安装完后效果如下
方法三手动编译源代码不推荐较麻烦需额外下载源码 编译安装
参考windows安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 步骤
下载项目源码git clone xxx ...进入项目并安装执行 go install .编译安装包生成可执行二进制文件 三、编译 .proto 文件
proto安装好后尝试编译你定义好的 .proto 文件命令如下 protoc --go_out. --go-grpc_out. *.proto
--go_out. 其中的. 是说你要编译的 .proto 文件目录为当前目录按需修改--go-grpc_out.其中的. 是说你生成 .pb.go 文件的目录按需修改*.proto其中的 * 是说编译当前目录下的所有 .proto 文件也可以单独指定为 xxx.proto 文件 四、错误问题解决
protoc命令执行过程中可能会遇到如下错误 PS D:\Work\Code\Go\src\test\proto protoc --go_out. –go-grpc_outpluginsgrpc:. xxx.proto protoc-gen-go: unable to determine Go import path for “xxx.proto” Please specify either: • a “go_package” option in the .proto source file, or • a “M” argument on the command line. 解决方法 参考protoc-gen-go: unable to determine Go import path for “*.proto“问题解决-CSDN博客
在你的 .proto 文件中添加如下代码option go_package ./;具体path可能不同如图所示
// helloworld.protosyntax proto3;package helloworld;
option go_package ./;// 定义请求消息
message HelloRequest {string name 1;
}// 定义响应消息
message HelloReply {string message 1;
}// 定义服务
service Greeter {// 定义SayHello方法rpc SayHello (HelloRequest) returns (HelloReply);
}
最终效果