微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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. 实战:

image.png

接下来用命令

protoc --go_out=. demo_service.proto
protoc --go-grpc_out=. demo_service.proto

执行完是

image.png

若报错:

image.png

可在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);
    }

参考资料

  1. gRPC-go 入门(1):Hello World

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐