编译添加云风pbc插件的Tolua.dll
三月 01, 2019
好久没有更新过blog了,最近这两天在搞pbc的相关东西。在此总结记录一下。
当初云风写pbc的初衷就是想可以方便的 binding 到动态语言中去用的。这里可以看一下云风blog中对pbc的介绍。
在开始之前,需要做一些准备工作。
- 下载tolua_runtime工程:
git clone https://github.com/topameng/tolua_runtime
- 下载pbc工程:tolua_runtime工程目录结构如下:
git clone https://github.com/cloudwu/pbc
pbc工程目录结构如下:
准备工作完成之后,把pbc整个工程拷贝到tolua_runtime工程中。如果在Windows平台编译,需要先下载Msys2( 64位)
- NDK 版本:android-ndk-r10e 默认安装到 D:/android-ndk-r10e
https://dl.google.com/android/repository/android-ndk-r10e-windows-x86_64.zip - Msys2配置说明
https://github.com/topameng/tolua_runtime/wiki - 配置好的Msys2下载
https://pan.baidu.com/s/1c2JzvDQ
备用地址:链接: https://pan.baidu.com/s/1To5Vft2h8TpM-gdD-KuPbw 提取码: qfzj
直接下载配置好的Msys解压在C盘,根据自己要编译的32或64位版本,配置环境变量,我这里使用64位,所以配置C:\msys64\mingw64\bin。编译32位请运行mingw32_shell.bat,64位运行mingw64_shell.bat。
修改build_win64.sh脚本。
|
然后执行脚本进行编译,32位同理修改。编译成功后,将Plugins/x86_64文件夹下的tolua.dll拷贝到游戏工程中Plugins文件夹对应的位置。
如果到这里就以为结束了,那就大错特错了。此时如果直接运行游戏工程,在require “protobuf.lua”时,会出现找不到”protobuf.c”的错误。还有以下两步:
- 在LuaDLL.cs添加接口
[ ]
public static extern int luaopen_protobuf_c(IntPtr L); - 在LuaClient.cs中注册pbc
protected virtual void OpenLibs()
{
luaState.OpenLibs(LuaDLL.luaopen_pb);
luaState.OpenLibs(LuaDLL.luaopen_struct);
luaState.OpenLibs(LuaDLL.luaopen_lpeg);
luaState.OpenLibs(LuaDLL.luaopen_protobuf_c);
}
到这里,将pbc插件编译进tolua.dll基本就完成了。
参考文献:
查看评论