使用protoc-gen-lua生成lua,C++,java代码

1,463 阅读1分钟

Protobuf 官方并没有 Lua版本,然后网易的程序猿开发出了 protoc-gen-lua ,可以让我们将 Proto 文件转成 lua 脚本在 Lua中使用,由于最后一直没人维护,貌似只能用proto2版本。

1、首先我们需要下载相关的资源

链接:链接:pan.baidu.com/s/1Khb-V7iF… 提取码:6f0g

2、我们需要安装Python2.7

把安装目录添加到环境变量中,然后打开命令行 控制台,输入命令

python 出现下图,表示安装成功

image.png

3、下载并编译 Luajit 2.0.4

下载后解压,找到 LuaJIT-2.0.4/src 目录,其中有一个批处理文件 msvcbuild.bat ,这是在 Windows系统的编译工具。在开始菜单 - 所有应用中的 Visual Studio 201x 中找到 Visual Studio Tools,打开 VS201x 开发人员命令提示,切换到 LuaJIT-2.0.4/src 目录,执行命令

msvcbuild.bat 到 LuaJIT-2.0.4\src 目录中寻找 lua51.dll lua51.lib luajit.exe 这三个文件是否存在,如果上面编译成功,那这三个文件是一定有的。

image.png

4、下载并编译 protobuf-2.4.1 (那些编译报错的地方我已经修复了,工程里已经生成了protoc.exe)

5、 到 protobuf-2.4.1\python 文件夹中执行命令

python setup.py install

​ 6、组合文件

把这两个文件拷贝出来,并且把之前生成编译出来的一些文件拷贝过来(lua.exe 其实改了名字的,编译生成的是luajit.exe)

image.png

把protobuf-gen-lua的这两个文件

image.png

拷贝到这里面

image.png

7.使用,这是我自己弄一个测试工具,上面三次对应生成C++,java,lua代码,protobuf文件夹才是之前生成那些文件存放地方

image.png

image.png

使用的时候,运行这个proto2c++_lua.bat文件就会把这个目录下的所有.proto文件生成到上面三个对应语言的文件夹中,具体的逻辑在CreateCode里

image.png