lua&protobuf使用

本文介绍了如何在Lua环境中集成protobuf,包括安装必要的依赖,编译protobuf的lua插件,使用protoc生成lua代码,以及展示了一个简单的使用示例。

lua&protobuf使用

需要装好python,lua,protobuf并设置好环境

下载支持protobuf的lua插件,下来的文件有两个目录,一个protobuf支持,一个是plugin

1,首先需要把pb.c重新编译成一个dll,如果是linux平台下可以直接使用so文件;

2,这个插件是用python写的,还需要配置python环境,并且在plugin中生成一个bat文件,文件内容如下:

@python 插件所在目录\protoc-gen-lua

3,生成protobuf_lua文件,使用protoc命令,格式如下:

protoc --plugin=protoc-gen-lua="插件目录\protoc-gen-lua.bat" --lua_out=./ xxxxxx.proto

如果没什么错误,在当前目录下会生成xxxxx_pb.lua文件,这个文件就是可以使用的支持protobuf的lua文件了

4,使用示例:

MsgTest.proto

message MsgTest

{

required int32 n1 = 1;

required int32 n2 = 2;

required int64 m1 = 3;

required int64 m2 = 4;

required string s1 = 5;

required string s2 = 6;

}


test.lua

require "MsgTest_pb"



function Lua_Test()

local msg1 = MsgTest_pb.MsgTest()

msg1.n1 = 100

msg1.n2 = 200

msg1.m1 = 0xffffff


msg1.m2 = 0xffffff

msg1.s1 = "this is a test"

msg1.s2 = "this is a test"

local data = 


msg1:SerializeToString();


local msg2 = MsgTest_pb.MsgTest()

msg2:ParseFromString(data)


return 1

end


t1 = os.clock()

for i=0,1000 do

Lua_Test()

end

t2 = os.clock() - t1

print("Used clock:", t2)


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值