ToLua中加入pbc

本文提供了一份详细的教程,介绍了如何在Windows和Mac平台上编译tolua和pbc库,包括解决常见问题的方法及Unity项目集成步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档

Windows平台:

http://blog.youkuaiyun.com/kudoran/article/details/72650594

https://my.oschina.net/chaloongjir/blog/755954

 

Mac平台:

http://blog.youkuaiyun.com/huangyushi/article/details/74457121

 

先在GitHub上下载toLua和pbc

https://github.com/topameng/tolua_runtime

https://github.com/cloudwu/pbc

 

修改pbc支持64位(uint64/int64)

因为tolua内有封装int64/uint64的userdata所以可以直接在pbc中使用

代码上传到oschina上了(github连接太慢)

http://git.oschina.net/Oswin2013/tolua_pbc_sqlite

 

Mac平台编译:

先编译pbc, 打开pbc.xcodeproj

Product -> Scheme -> Edit Scheme -> Run:

Build Configuration 改成Release

154534_O1ez_2648478.png

Build Active Architecture Only设置成 No, 这样生成的库就不限制当前active的平台了

Clean 再Build

在Products会生成libpbc.a文件, 右键Show in Finder找到它

 

tolua/iOS/打开toLua.xcodeproj, Build Configuration也设置成Release

将libpbc.a拖到toLua项目里

按下图创建pbc Group添加pbc.h和pbc-lua.c(项目要用到sqlite, 所以添加了sqlite的三个文件), 此时libluajit.a文件还未生成

生成libluajit.a:

cd 到tolua根目录, 将build_ios.sh拖到终端(Terminal)运行, 编译成功后生成的libtolua.a文件会自动copy到Plugins/iOS目录

以后要修改并编译tolua就不需要用build_ios.sh了, 直接可以在xcode中build

将libtolua.a copy到Unity的Plugins/iOS目录下即可

154545_oNsm_2648478.png

 

Windows平台编译:

这边直接copy “KudoRan”的步骤

windows下用msys2+mingw64去编译。

1. 下载msys2, http://www.msys2.org/ ,下载安装好之后打开,按照官网安装说明先更新一波

2.  参考这个 https://github.com/topameng/tolua_runtime/wiki ,安装mingw64就行,32位看情况吧。现在版本可能会有问题,会报libintl-8.dll is missing,然后导致mingw64.exe无法打开,这是因为没有安装mingw-w64-x86_64-gettext 东西的原因,指令是:pacman -S mingw-w64-x86_64-gettext   装了就好了,如果不对就pacman -Sl搜一下

3. 下载tolua# runtime版本https://github.com/topameng/tolua_runtime,

4. 下载pbc https://github.com/cloudwu/pbc ,把pbc放到tolua runtime版本的文件夹下

修改tolua的build_win64.sh

打开mingw64.exe, cd 到build_win64.sh目录, 输入 “./build_win64.sh”执行脚本

生成的dll在Plugins/x86_64下

 

遇到的问题:

Windows平台:

1.         mysys装在了Program Files目录下, 会因为路径中有空格出问题

2.         直接copy网上的shell内容, 如:pbc/binding/lua/pbc-lua.c \  , 后面多了空格, 导致编译报错

3.         因为编译环境没有protoc, 导致编译pbc报错, 将pbc的Makefile中关于test模块的内容去掉了

 

Mac平台:

无论怎么clear再build, pbc中修改的代码在Unity项目中都无效, 从Unity项目运行的结果看还是初始的pbc初始处理流程, 将pbc或集成的tolua .a文件单独加进一个测试的xcode项目, 修改的代码是有效的.

(猜测: 可能是本地下载并打开了很多个pbc/toLua  xcodeproj, 导致Unity的xcode项目在Linking的时候依然用的是最初集成进去的原版toLua xcodeproj, 并不是新修改并添加的libtolua.a库, 当然也仅是猜测, 没有对问题进行分析定位, 如果本地只有一份pbc和tolua xcodeproj应该不是出现这种问题)

 

解决方案:

直接将修改的pbc和tolua拖进Unity xcode项目中

(拖项目时要先关掉tolua和pbc的xcode窗口)

154557_FpdB_2648478.png

 

Build Phases:

Target Dependencies添加tolua和pbc

154603_izAl_2648478.png

项目目录下删除之前的libtolua.a, 并在Unity的项目里重新依次生成libpbc.a和libtolua.a

tolua项目的Products下将新生成的libtolua.a拖到 Build Phases的Link Binary With Libraries下

154608_6Xfs_2648478.png

问题解决, 修改的代码生效, 此时可以把新生成的libtolua.a文件copy到Unity工程中使用

将pbc和tolua拖进Unity的xcodeproj还有一个好处, 可以在Unity的xcode里调试pbc和tolua的代码, 非常方便(之前没有重新在Unity的proj中重新生成库文件, 只是将pbc拖进项目中调试, 发现修改的一个方法断点进不去, 说明调试代码和静态库中的代码不一致), 当然要调试代码的话将两个库用debug生成会更好些.

 

修改Unity引用的这些库很方便, 不用重新Build Unity或Clean再Build Unity的xcodeproj, 点Build会直接Linking新修改的库.

 

转载于:https://my.oschina.net/Oswin/blog/1477161

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值