找回密码
 立即注册
查看: 297|回复: 0

ToLua中加入pbc

[复制链接]
发表于 2021-10-11 07:56 | 显示全部楼层 |阅读模式
参考文档

Windows平台:
http://blog.csdn.net/kudoran/article/details/72650594
https://my.oschina.net/chaloongjir/blog/755954
Mac平台:
http://blog.csdn.net/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


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目录下即可


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窗口)


Build Phases:
Target Dependencies添加tolua和pbc


项目目录下删除之前的libtolua.a, 并在Unity的项目里重新依次生成libpbc.a和libtolua.a
tolua项目的Products下将新生成的libtolua.a拖到 Build Phases的Link Binary With Libraries下


问题解决, 修改的代码生效, 此时可以把新生成的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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 18:45 , Processed in 0.089883 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表