Mac下环境搭建(用brew安装go和protoc)
Mac下brew安装软件是我的个人习惯,brew安装不用去.zsh配置环境变量,安装完之后自动就在/usr/local/Cellar/go
中
- brew install go
一. 配置全局环境变量
- vim ~/.zshrc, 追加以下内容
- # brew
- export PATH=/opt/homebrew/bin:$PATH
-
- # Go
- export http_proxy="http://127.0.0.1:12639"
- export https_proxy="http://127.0.0.1:12639"
- export no_proxy=localhost,127.0.0.1,.qq.com,.tencent.com
二. brew安装grpc和go
1. 安装grpc核心库
安装的是 gRPC
的核心库
2. 安装的是protocol编译器
brew install protobuf
3. 各个语言的代码生成工具,对于 Golang
来说,称为 protoc-gen-go
brew install protoc-gen-go
brew install protoc-gen-go-grpc
4. 总结:不想理解的话四行命令一起执行,然后去喝杯茶等会再回来就OK
- brew install grpc
- brew install protobuf
- brew install protoc-gen-go
- brew install protoc-gen-go-grpc
安装完后我的本地版本如下:
- ➜ ~ go version
- go version go1.17.2 darwin/amd64
- ➜ ~ protoc --version
- libprotoc 3.17.3
- ➜ ~ protoc-gen-go --version
- protoc-gen-go v1.27.1
5. 实战:
接下来用命令
- protoc --go_out=. demo_service.proto
- protoc --go-grpc_out=. demo_service.proto
执行完是
若报错:
可在proto文件中添加如下行 意为指定pb文件的生成路径
- option go_package ="./";
- //如果加入该语句,会覆盖掉之前的package MedBaike;(该语句作用:在生成的pb.go文件指明所属包名),导致包名错误
- //此时可以写为option go_package ="./;MedBaike";(分号前指明文件生成所在目录,分号后指明所属包名)
demo_service.proto变为
- syntax = "proto3";
-
- option go_package ="./;MedBaike";
-
- package MedBaike;
-
- message GetSchemeReq
- {
- string path = 1; //目录列表数量
- }
- message GetSchemeResp
- {
- string data = 1; //帖子数量
- }
-
- service DemoService
- {
- // demo
- rpc GetScheme (GetSchemeReq) returns (GetSchemeResp);
- }