背景
最近转了go语言,然后代码生成器用的是proto。就开始研究一下怎么用proto制定协议和生成go代码了。
假设你的go环境已经安装好了,那么接下来要做的东西其实就是安装protoc与protoc-gen-go了。
protoc安装
- 直接去git找到protoc的开源代码,然后下载指定版本就好了。我们项目用的版本要求是3.6以上的,然后我是下载了3.15版本。git下载链接
- 我下载的是protoc-3.7.1-linux-x86_64.zip,可以直接解压到任意目录下,可以得到下面的文件:
然后进入bin文件夹中,找到可执行文件:protoc.exe 。然后将它放入到$PATH中,可以在环境变量中添加当前路径到path的方式实现。也可以复制这个exe到已有的path中。比如我就是直接将其复制到了go的安装目录的/bin下。(做了这个之后,在命令行敲命令就不会报错说:找不到protoc命令了)
protoc-gen-go安装
linux下,好像直接执行命令就可以安装好这个protoc-gen-go插件了。但是,windows下,还是要自己去编译代码生成exe。步骤如下:
- git clone项目下来
- 然后执行编译
- 然后将生成的exe文件放到$path目录下(或者添加当前目录到 $ path中,和protoc.exe一样,就不赘述了)
涉及的命令:
git clone -b v1.30.0 https://github.com/grpc/grpc-go #克隆项目
cd cmd/protoc-gen-go-grpc #进入到指定目录(如果你不是命令行操作,那就直接文件管理器找到这个目录,再在这里打开命令行)
go install .
执行效果
- 创建好了helloworld.proto文件后直接输入命令:
protoc --plugin=protoc-gen-go=$protoc-gen-go的路径 --go_out . helloworld.proto
命令中的". "代表生成的文件在当前目录
参考
- https://blog.csdn.net/u011582922/article/details/107346695