protobuf 学习的过程和坑

protobuf学习

protobuf 安装

下载

方法一:===> git clone https://github.com/protocolbuffers/protobuf.git

方法二:===> 或者将准备好的压缩包进行拖入
	解压到$GOPATH/src/github.com/protocolbuffers/下面
	Unzip protobuf.zip

安装

(1)安装依赖工具(联网)
$ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y

(2)进入protobuf文件
cd protobuf/

(3)进行安装检测 并生成自动安装脚本
./autogen.sh
./configure

(4)进行编译C代码
make

(5)进行安装
sudo make install

(6)刷新linux共享库关系
sudo ldconfig

出现的问题,直 make 安装不了,要使用超级权限。并将install-sh设置

chomd 777 install-sh

测试是否安装成功

protoc -h 如果没有error证明没有什么问题

bug 使用终端测试没问题,但是在golang的终端里无法显示。
使用
出现了bug,报出错误信息 zsh: command not found: protoc
参考下文。

https://cnblogs.com/DI-DIAO/p/12588406.html

protobuf编译命令

protoc  --go_out=./ *.proto
protoc-gen-go: unable to determine Go import path for "mypb.proto"

Please specify either:
        • a "go_package" option in the .proto source file, or
        • a "M" argument on the command line.

See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.

--go_out: protoc-gen-go: Plugin failed with status code 1.

解决方法:主要原因是没有找到路径,所以需要在proto文件中设置路径参考下篇文章

https://blog.csdn.net/fujian9544/article/details/116809779

protobuf 注册rpc

service 服务名{
rpc 函数名(参数:消息体) returns(返回值:消息)
}
message Doing{
	string name =1;
}
message Runing{
	int32 milk =2;
}
例如:
service sayhello{
rpc SayHi(Doing) returns(Runing)
}
										protobuf

知识点:

  1. 默认,protobuf,编译期间,不编译服务。想要使之编译。需要使用gPRC。

  2. 使用的编译指令为:

    protoc --go_out=plugins=grpc:./ *.proto
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值