Unity luajit集成

集成ulua到unity后,尝试使用luajit编译字节码。

我们使用的是ngui官方github的分支. (Readme中最近的更新记录是2016-01-24)

其中使用的编译字节码环境如下

luajit: win, android 使用luajit 2.0.4stable

luavm: mac使用luac编译, ios 使用luac (luavm) 

luajit_ios: ios可以选择使用luajit2.1beta编译字节码


我们使用jenkins构建ulua和配置文件,但是ulua中在mac环境下使用的编译字节码是luac, windows下才是luajit, 所以我们要自己编译luajit的mac版本.

我们开始以为安卓平台 libulua.so里面潜入的解析器兼容luajit 2.1beta编译的字节码, 所以到http://luajit.org/下载了luajit2.1beta的源代码

make

make install PREFIX=~/Download/luajit/

生成bin目录后, 拷贝share里面的jit目录到luajit可执行程序的同级目录(否则编译字节码会报modules没有安装等问题), 然后可以使用luajit.

find ~/work/netjoy/ibilis/NJ_LOG/Assets/Lua -name "*.lua" -exec ./luajit-2.1.0-beta2 -b {} {} \;来生成文件,

如果希望使用out作为文件名,使用luajit    

find ~/work/netjoy/ibilis/NJ_LOG/Assets/Lua -name "*.lua" -exec ./luajit-2.1.0-beta2 -b {} {}.out \;

使用2.1.0beta编译字节码后,在android上无法解析,报bad header in precompiled chunk


后来检查我们集成的ulua代码中自带的的jit中bcsave.lua版本不是20004, 和我们下载使用的2.1.0里面的bcsave.lua版本不同。 所以下载2.0.4stable版本的,发现bcsave.lua中也是20004, 重新编译字节码, 就可以在android上正常加载了.


总结:

1. 在目前的版本中, luajit的解析已经在ulua.so中自动集成了, 无须添加新组件,代码,无须修改代码

2. 我们的工作只是外部生成lua字节码而已.  生成代码需要下载luajit的源代码,自己编译。然后修改appconst.cs里面的lua encode值,便于使用打lua字节码,或者我上面提供的命令行来编译字节码.

3. 集成任何一个第三方库的时候, 一定要记录使用的版本号,及详细阅读说明,不仅限于阅读doc, read, 甚至要看github上的提交说明, wiki等.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值