Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:protobuf:luaprotobuf

在Lua中使用Protobuf


Protobuf居然没有官方版的Lua实现,使用的是这个:https://github.com/starwing/lua-protobuf

在Windows上编译Lua-Protobuf

  • 准备好Lua的头文件Lib/DLL文件Lua解释器,编译Lua看这里编译Lua
  • 下载Lua-Protobuf的源码
  • 「方式1」按照官方给的命令编译:
cl /O2 /LD /Fepb.dll /I Lua53\include /DLUA_BUILD_AS_DLL pb.c Lua53\lib\lua53.lib
  • 「方式2」使用VS编译:
  • 新建工程,名字叫pb
  • 按照上面的编译命令配置好VS工程编译,编译选项不明白的看这里Cl编译器
  • 最终得到的应该是pb.dll

可能遇见的问题:

  • 自己使用cl编译器可能会找不到某些头文件,应该是环境的问题,建议还是用VS
  • 编译出来的pb.dll在require的时候会失败,重要:Lua的解释器Lua的Lib/DLL保持是从同一份源码编译出来的就可以
  • Lua-Protobuf除了提供了C代码,还有Lua代码,都是需要的
  • 运行的时候,把Lua.dll/pb.dll和Lua.exe放在一起
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/protobuf/luaprotobuf.txt · Last modified: 2022/10/20 02:51 by zh