一、新建一个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
|