一定义 protobuf 消息并生成 Go 代码
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一定义 protobuf 消息并生成 Go 代码相关的知识,希望对你有一定的参考价值。
一、新建一个pcbook项目
二、创建proto文件
-
创建一个名为protoc的新文件夹,并在其下添加一个processor_message.proto文件
-
在processor_message.proto文件文件中定义CPU信息
- 用string类型定义CPU的品牌与名字
- 用无符号整型定义CPU里的内核与线程,因为他们不能为负数,所以使用无符号整型uint32
- 用double类型定义最小和最大频率
- 使用option go_package定义,生成的go文件的包名为pcbook
syntax = "proto3";
option go_package ="./;pcbook";
message CPU
string brand = 1;
string name = 2;
uint32 number_cores = 3;
uint32 number_threads = 4;
double min_ghz = 5;
double max_ghz = 6;
三、生成 Go 代码
3.1、安装protobuf
3.1.1、从源码安装
- 安装protobuf的前置环境,命令:
sudo apt-get install autoconf automake libtool curl make g++ unzip
- 安装protobuf的源文件,命令:
git clone https://github.com/protocolbuffers/protobuf.git
- 进入到protobuf目录,命令:
cd /home/tsb/Downloads/protobuf
- clone子模块的依赖,命令:
git submodule update --init --recursive
- 执行自动生成的shell脚本,命令:
./autogen.sh
- 配置文件shell脚本,命令:
./configure
- 编译,命令:
make
- 编译检查,命令:
make check
- 编译安装,命令:
sudo make install
- 刷新,命令:
sudo ldconfig
- 查看安装结果,命令:
protoc --version
3.1.2、直接安装
- 安装命令:
sudo apt install -y protobuf-compiler
- 验证安装,命令:
protoc --version
3.2、安装grpc
- 在pcbook目录下执行,命令:
go get -u google.golang.org/grpc
- 在pcbook目录下执行命令
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.26
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1
- 设置环境变量:
export PATH="$PATH:$(go env GOPATH)/bin"
3.3、生成go代码
-
创建一个名为的新文件夹
pb
来存储生成的 Go 代码
-
生成go代码命令:
protoc --proto_path=proto --go_out=pb --go-grpc_out=pb proto/*.proto
,将生成的代码存放进pb文件夹里
四、创建Makefile自动化生成
- 在pcbook目录下创建Makefile文件
- 编写Makefile文件
gen:
protoc --proto_path=proto --go_out=pb --go-grpc_out=pb proto/*.proto
clean:
rm pb/*.go
-proto_path=proto --go_out=pb --go-grpc_out=pb proto/*.proto
clean:
rm pb/*.go
以上是关于一定义 protobuf 消息并生成 Go 代码的主要内容,如果未能解决你的问题,请参考以下文章
ProtoBuf 生成 Go 代码去掉 JSON tag omitempty