win环境下实现导出protobuf文件的lua版本

quick cocos2dx 是基于lua脚本的,因此要使用protobuf必须能让lua来序列化和反序列化数据

步骤

1 安装python2.7 从www.python.org中下载


2 下载protochttp://protobuf.googlecode.com/svn/trunk并编译出protoc.exe 我下载的是2.4.1版本,用vs2013进行编译,过程有点小小问题,不过顺利解决.

 2.1 遇到min max无法识别( 在对应的文件加上 #include <algorithm>

 2.2 遇到一个string 无法转换为string&& 的问题.传入的参数加上string&

 2.3 生成的protoc.exe放到protobuf-2.4.1/src下


3 下载protoc-gen-lua

可以通过HG从服务器(hg clone https://code.google.com/p/protoc-gen-lua/)上下载最新的版本。

简单介绍一下里面的三个目录:

example 存放的一个示例协议,

plugin 将.proto协议转为LUA脚本需要的工具。要注意,这个工具是用PYTHON写的,所以后面我们需要安装PYTHON。

rotobuf这里存放了工程需要的文件。其中pb.c是C码文件。主要是在工程中引用,也可以编译成动态文件(.so)供LUA调用。其它LUA文件则需要引入到LUA工程中。



4、编译python版本的protobuf

在protobuf-2.4.1\python下运行python setup.py build,然后再执行python setup.py install。


5、制作转换协议的批处理

在protoc-gen-lua/plugin目录下编写批处理:s.bat,就下面一行代码。

@python "%~dp0protoc-gen-lua"

6 接着拷贝一份protoc.exe到protoc-gen-lua目录。第3步我们已经编译了出了protoc.exe。在协议转换中,我们需要使用他。

在protoc-gen-lua目录编写批处理:s.bat 来转换协议。(导出lua版的proto文件 --lua_out)

cd ./example
for %%i in (*.proto) do (
echo %%i
"..\protoc.exe" --plugin=protoc-gen-lua="..\plugin\s.bat" --lua_out=. %%i

)
echo end
pause


7 运行 protoc-gen-lua目录下的s.bat将在example目录下生成 person_pb.lua


至此,完成了protobuf文件的lua版本导出,目的达成.接下来就要在lua中decode和encode了.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值