为什么用 lua 替换 luajit

 我来答
huanglenzhi
2015-04-19 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517199
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  1、新建一个名为1.lua的文件,里面只有一句话print("Hello Lua"),新建一个空的out.lua脚本文件
  2、开始--运行--cmd
  3、luac -o out.lua 1.lua
  注: luac -o [编译后脚本名] [脚本名],必要时带上脚本路径,如:

  

  回车之后,再打开out.lua就可以看到编译好的字节码了

  

  然后实验一下,执行这个字节码脚本,可以看到lua原生的解释器可以直接解析luac编译出来的bytecode脚本,很方便!

  

  重点:
  做完了以上的一系列之后,我照着这个方法编译项目中的脚本,然后在cocos2dx环境下使用,发现不行!于是又查了一下资料,发现2dx使用的是luajit,lua原生编译出来的bytecode和luajit是不兼容的,所以照着上面方法编译出来的bytecode脚本无法在2dx中使用。
  解决这个问题其实很简单,就是用2dx自带的luajit编译lua脚本,下面附上luajit编译bytecode的方法:
  1、在cocos2d-x-2.2.3\scripting\lua\luajit\LuaJIT-2.0.1\src目录下有个msvcbuild.bat批处理文件,需要先把luajit.exe这个东西给编译出来。
  2、打开visual studio的命令行工具,这个只要装了vs都会有,在安装目录里面可以找到。
  3、用vs的命令行工具cd到luajit的src目录
  4、执行msvcbuild.bat批处理文件,编译出luajit.exe

  

  编译完成之后,会在src目录下生成一系列文件,其中有一个luajit.exe

  

  接下来就可以使用luajit.exe编译lua脚本的bytecode了:luajit -b [脚本名] [编译后的脚本名],执行完后会在src目录下生成一个已经编译成bytecode的jit.lua文件

  

  
  下面把编译之后的jit.lua放在2dx中试一下,以HelloLua工程为基础,把jit.lua放到\samples\Lua\HelloLua\Resources下,修改AppDelegate.cpp中的lua调用为std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("jit.lua");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式