cocos2dx-3.6的luajit怎么了

大哥大姐们哪位知道,cocos2dx-3.6的luajit怎么了
最新回答
和快乐签约

2024-04-17 17:40:30

cocos2d-x中luajit的使用

新版本的cocos2d-x使用了luajit来替代原始的lua,好处一是可以极大的提高运行速度(android下可以开jit,运行速度提高10~60倍,ios下不可以开jit,运行速度也可以提高2~3倍)。 二是luajit编译的字节码现阶段来说无法反编译,也就是说无法破解。 这里对luajit进行详细的说明。

1、基本使用。这个很简单,不用修改任何代码,与lua5.1完全兼容。 对应的头文件和库要替换成luajit的(与lua命名相同)

2、发布时编译成字节码。

这个需要luajit.exe的执行文件。 编译方法(windows): 在(
http://luajit.org/download.html
)下载源代码,使用vs的命令行工具,执行msvc.bat进行编译。 我最开始使用cygwin直接执行make结果出了很多编译错误和诡异的问题。 其实直接使用批处理才是正确的方式。

编译完成后,要注意luajit.exe和源代码src/jit文件夹要同时并且匹配使用。否则运行时会出现 "unknown luaJIT command or jit.* modules not installed"的错误。

编译成字节码的命令如下: luajit -b 原始文件 输出文件

更多详细说明可以直接执行 luajit -b来获取。 这里还要注意,输出文件最好保持.lua的扩展名,否则require文件的时候会提示找不到文件。除非require里面使用的完整名字。

我在编译字节码时还碰到了一个问题,就是无论编译什么文件都提示这个 "luajit '=' expected near '<eof>'" ,后来换了luajit的版本后就没有出现了。可能跟我一开始手欠改了luajit源代码有关。

3、编译luajit的静态库文件(for android)

编译字节码所用的执行文件和我们开发程序时使用的静态库文件要保持版本一致。 windows版本所需要的文件在编译执行文件时就已经生成。