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

被折叠的 条评论
为什么被折叠?



