protobuf-c的环境搭建与编译

1 环境配置

我使用的Ubuntu环境。

protobuf有很多的版本,V2x开头和V3开头的版本,我们使用V3的版本,因为V2x的版本没有autogen.sh文件。

依次使用如下命令:

1、首先安装依赖环境
	sudo apt-get install autoconf automake libtool curl make g++ unzip
2、下载源码
	git clone https://github.com/protocolbuffers/protobuf.git
3、进入源码文件夹
	cd protobuf/
4、版本回滚--v3.20.3
	git checkout fe271ab	
此步骤(步骤2-4)可以使用下载好的源码包进行解压即可,当github下载不下来的时候。
	tar zxvf protobuf-all-3.20.3.tar.gz
5、解压后进入到解压目录
	cd protobuf-3.20.3/
6、运行如下命令
	./autogen.sh
	./configure
	sudo make
	sudo make check
	sudo make install
	sudo ldconfig				// 更新配置
	protoc --vertion            // 在任何目录下输入这个命令,查看protoc版本,出现版本号即成功
执行make check时可能出现一个失败,解决方法如下。使用虚拟机,比如说vmware,那么只需要将虚拟内存从4G变成8G即可。
7、下载protobuf-c
	首先安装依赖
		sudo apt-get install pkg-config pkgconf
	下载源码
		git clone https://github.com/protobuf-c/protobuf-c.git
8、进入目录
	cd protobuf-c/
9、运行如下命令
	./autogen.sh
	./configure
	sudo make
	sudo make install

然后建立.proto文件。我的如下Msg.proto

syntax = "proto3";// 指定protobuf版本
option java_package = "com.freddy.im.protobuf";// 指定包名
option java_outer_classname = "MessageProtobuf";// 指定生成的类名

message Msg {
    Head head = 1;// 消息头
    string body = 2;// 消息体
}

message Head {
    string msgId = 1;// 消息id
    int32 msgType = 2;// 消息类型
    int32 msgContentType = 3;// 消息内容类型
    string fromId = 4;// 消息发送者id
    string toId = 5;// 消息接收者id
    int64 timestamp = 6;// 消息时间戳
    int32 statusReport = 7;// 状态报告
    string extend = 8;// 扩展字段,以key/value形式存放的json
}

把该文件放在protobuf目录下。
然后运行如下代码。

protoc --c_out=. Msg.proto

这样就得到了如下两个文件。
生成文件

完成!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值