cocos2dx win平台集成使用protobuf

来源:互联网 发布:gps nema数据 编辑:程序博客网 时间:2024/05/24 02:39
环境: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);


0 0