首页 > 代码库 > 关于luajit的bytecode模式
关于luajit的bytecode模式
最近把android下的Lua换成了Luajit,并且使用了bytecode,后来发现某些品牌的手机崩溃的比较多,于是怀疑是不是luajit的问题,所以就对Luajit的bytecode模式做了点调研,我们先来看一下-b参数的说明
-b[options] input output
This option saves or lists bytecode. The following additional options are accepted:
- -l — Only list bytecode.
- -s — Strip debug info (this is the default).
- -g — Keep debug info.
- -n name — Set module name (default: auto-detect from input name)
- -t type — Set output file type (default: auto-detect from output name).
- -a arch — Override architecture for object files (default: native).
- -o os — Override OS for object files (default: native).
- -e chunk — Use chunk string as input.
- - (a single minus sign) — Use stdin as input and/or stdout as output.
The output file type is auto-detected from the extension of the output file name:
- c — C source file, exported bytecode data.
- h — C header file, static bytecode data.
- obj or o — Object file, exported bytecode data (OS- and architecture-specific).
- raw or any other extension — Raw bytecode file (portable).
比较值得说的一点是Output那里,根据文档,luajit -b是根据output的后缀名来决定应该编译成什么东西的
luajit -b main.lua main.c 输出就是一个c文件
luajit -b main.lua main.h 输出就是一个头文件
luajit -b main.lua main.o 输出就是一个object文件,这个时候要注意了,如果是交叉编译,那就得指定-o -a
luajit -b main.lua main.lua 输出就是一个原生的bytecode文件,这个文件是跨平台的,就跟普通的lua文件一样
所以看来崩溃跟Luajit关系不大了,继续找吧。
搜索了一下luajit的邮件列表,发现确认有人也发现会core在luajit里,必须如果使用了bytecode模式的话,情况会更糟糕,
另外发现cocos2dx自带的Luajit版本有点低了,先换到2.0.3看看效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。