Google protobuf 导出到 lua 环境搭建

        Protobuf 是由 Google 设计的一种高效、轻量级的信息描述格式。当前 lua 要用到 protobuf,如何安装 protobuf 导出环境呢?以下是环境搭步骤。

        首先要用到 python 环境,我的环境是 python 2.7。

一、下载 google protobuf 库

        地址:https://github.com/protocolbuffers/protobuf/releases

        

        注:选择版本的时候注意 Python 栏介绍,找个和自己 python 匹配的版本。

                最后标注的 zip 下载和自己电脑匹配位数的即可。

二、安装 protobuf

        1. 解压 protobuf-all-3.18.0-rc2.tar.gz 得到 protobuf-all-3.18.0-rc2。

        2. 解压 protoc-3.18.0-rc-2-win64.zip 得到里面的 bin/protoc.exe,将它拷贝到 protobuf-all-3.18.0-rc2/src 文件夹下。

        3. 切换目录到 protobuf-all-3.18.0-rc2/python,打开 cmd,执行其中的文件 setup.py

  

python setup.py install

        4. 安装完成后,cmd 执行 命令:pip list,可以看到 

 即说明 protobuf 安装成功。

三、下载大神写的 protoc-gen-lua

        地址:https://github.com/Tunied/protoc-gen-lua/tree/master/plugin

        得到其中的 plugin,以及 example。

四、导出目录设置

        1. 创建一个目录:protobuf

                将 【三】中得到的 example/person.proto 拷贝到该目录下。

                创建一个导出目录:export

                新建一个 txt,命名为 export_lua.bat。编辑内容:

for %%a in (*.proto) do (
	proto\protoc %%a --lua_out ./export --plugin=protoc-gen-lua="proto\protoc-gen-lua.bat"
)

pause

        2. 新建目录 proto:

                将 protoc-3.18.0-rc-2-win64.zip 得到 bin/protoc.exe 拷贝到该目录。

                将 【三】中得到的 plugin 中的 plugin_pb2.py,protoc-gen-lua 拷贝到该目录。

                新建 txt, 命名为 protoc-gen-lua.bat,编辑内容:

        

@python "%~dp0protoc-gen-lua"

                3. 设置好的结构如下

                

 

五、得到 protobuf lua 文件

        运行  export_lua.bat,在 export 中即可看到生成的 person_pb.lua 文件。

        后续将需要导出的 .proto 文件到 protobuf 目录下,运行 export_lua.bat 即可。

六、使用导出得到 lua 遇到的问题:

        proto 文件中有 import 其他 proto 文件,并且使用 引用文件中的对象。在执行程序解析对应消息时,会出现无法找到对象的错误。后面通过修改 protoc-gen-lua 文件,解决。

 七、protoc-gen-lua 的改动,protobuf-all-3.18.0-rc2.tar.gz,protoc-3.18.0-rc-2-win64.zip,导出目录已上传资源。https://download.youkuaiyun.com/download/u012419303/35609710

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值