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

来源:互联网 发布:阿里云数据库怎么用 编辑:程序博客网 时间:2024/06/05 16:30

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 ./examplefor %%i in (*.proto) do (echo %%i"..\protoc.exe" --plugin=protoc-gen-lua="..\plugin\s.bat" --lua_out=. %%i)echo endpause


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


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


0 0
原创粉丝点击