cocos2dx win平台集成使用protobuf

本文介绍如何在Cocos2dx 3.10环境下使用VS2015集成Protobuf 2.5.0版本,解决版本冲突问题,并详细说明了编译配置过程及在Windows平台上的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:cocos2dx 3.10 + VS2015


在谷歌protobuf下载文件(需翻墙),我下载的时候最新的版本是2-6-1,但是对于cocos本身libsimulator下有集成protobuf-lite并且版本为2-5-0,当引入2-6-1时候会有各种冲突,折腾好久无法解决,认怂的去找了protobuf-2.5.0.tar.gz版本来用


解压后如下:








用VS打开这里的 vsproject 文件夹里的工程,编译这四个项目(编译其他test会有一些报错,而且并不需要)




其中 protoc 编译会生成一个 protoc.exe。是后面编译.proto文件使用的


编译完成后,打开自己要集成的工程,在项目设置里做如下设置(仅供windows平台)




设置完成之后,可以将上述提到的 protoc.exe 放到 C:\Windows\System32 目录下
然后打开控制台,进入你自己proto文件所在的文件夹,对你自己的 .proto文件进行编译,命令是
protoc -I=./ --cpp_out=./ ./Type.proto ./RpcProtocol.proto ./Message.proto (路径可以自己设置)
就会生成对应的.cc文件和.h文件

ps:据说安卓不支持 XXX.pb.cc这种带两个.分隔符的。所以可以自行改名,但记得相对应的改文件里include的文件名,这个我没有测试过


然后将.h和.cc文件引进自己工程进行编译,就可以使用protobuf协议了。
(因为后面我用的lua方式,这个方式就只测试了在win平台,是可以编码解码的。)


用法类似于这样


Header header;
header.set_type(LOGIN);
header.set_uid("abc");
header.set_pid(0);
header.set_token("abc");
int headerLength = header.ByteSize();
char* headBuf = new char[headerLength];
header.SerializeToArray(headBuf, headerLength);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值