go protoc-gen-go 安装详解
首先是安装官方的protoc工具,可以从其GitHub官方网站下载
https://github.com/protocolbuffers/protobuf/releases
我下载的win-64版本
下载完成后解压把bin下面的protoc.exe 拷贝到GOPATH下面
然后是安装针对Go语言的代码生成插件
go get github.com/golang/protobuf/protoc-gen-go
报错如下错误
我使用的go版本是1.17。而Go1.17版使用go install安装依赖。所以应该按照它下面的格式go install pkg@version进行拉取,同时按照提示原来的地址作废需要
替换成google.golang.org/protobuf,最终命令为:
1 | go install google.golang.org/protobuf/cmd/protoc-gen-go@latest |
本地先创建了一个hello.proto
1 2 3 4 5 6 7 | syntax = "proto3" ; package main; message String { string value = 1; } |
然后通过以下命令生成相应的Go代码
1 | protoc --go_out=. hello.proto |
其中go_out参数告知protoc编译器去加载对应的protoc-gen-go工具,然后通过该工具生成代码放到当前目录。最后是一系列要处理的Protobuf文件的列表
如果出现下图问题,检查一下环境变量
错误:
提示需要 option go_package="./;main";
go_package 是指生成的文件要放哪里,main指生成的文件包名是什么
最终生成的文件:
生成的结构体中还会包含一些以XXX_为名字前缀的成员,我们已经隐藏了这些成员。同时String类型还自动生成了一组方法,
其中ProtoMessage()方法表示这是一个实现了proto.Message接口的方法。此外,Protobuf还为每个成员生成了一个Get方法,
Get方法不仅可以处理空指针类型,而且可以和Protobuf第2版的方法保持一致(第二版的自定义默认值特性依赖这类方法)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2021-08-20 .Net Core RSA加解密,签名