文档章节

luac luajit接入笔记

 为往圣继绝学
发布于 2016/05/17 12:03
字数 596
阅读 161
收藏 0

先做个简介,luac和luajit是干什么的?

他们是将lua源码文件,生成为二进制01编码的文件,这样做的好处是1,安全,2机器识别速度快。原来读lua文件要经过一遍语义分析等,现在省掉了中间几个步骤。

luac是lua官方自带的,luajit是第三方的,从我们测试效率上来说,luajit更快,lua最慢。

先说luac

接入luac时最好是下载源码编译,因为如果是现成的.a文件,首先安全先不说,兼容就可能有问题,毕竟那是在别人的机器上编译好的文件。另外注意点是makefile里默认的编译环境是linux,如果是在mac上编译,一定要改makefile(注意看makefile里的注释,都写清楚了),否则编译出来的二进制文件是无法被lua解释器识别的。在cocos2d的解释器里,代码是不用修改的,因为lua官方都支持好了。编译完成之后,生成了一个luac的命令(windows下是luac.exe),这个命令可以将lua文件转换为二进制文件。(命令怎么敲,自行搜索解决吧)将这个文件替代原来的lua文件,没报错,就表示成功了。

再说luajit

同样建议自己编译,同样要修改makefile文件,mac下用xcode编译还有修改pagezero参数等等bug,(遇到的话自行网上搜索吧),同样会生成一个luajit文件,执行这个命令可以将lua转换为二进制,但是这里要多一步,就是cocos2d里的头文件和二进制文件,要替换为luajit官方的头文件和二进制。

接入的时候注意版本对应,lua和luajit都可以查看当前版本,cocos2d里的lua头文件里也有宏记录了lua版本,一定要对应好。

我的项目最终选择了luac,为什么,因为luajit不支持ios的64位,而苹果要求必须支持。而且luajit官方好久都没更新了。

不过luac有一些反编译的工具,所以最后还要再进行一次加密才比较保险。luajit的反编译目前还没看到。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 4
码字总数 2798
作品 0
朝阳
高级程序员
私信 提问
【最新】LuaJIT 32/64 位字节码,从编译到使用全纪录

网上关于 LuaJIT 的讨论,已经显得有些陈旧。如果你对 LuaJIT 编译 Lua 源文件为具体的 32位或64位字节码,极其具体使用感兴趣的话,不妨快速读一下这篇文章。此文章针对尝试在 iOS 或 Andr...

ios122
2018/07/11
0
0
LuaJIT 2.0 正式版发布,Lua 编译器

LuaJIT 2.0 正式版发布了,下载地址:LuaJIT-2.0.0.tar.gz , LuaJIT-2.0.0.zip LuaJIT:采用C语言写的Lua的解释器的代码 LuaJIT is a Just-In-Time Compiler for the Lua* programming langu......

oschina
2012/11/13
3.4K
8
ubuntu + nginx + lua 自动安装脚本

!/bin/bash 初始化时间 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime apt-get update apt-get install -f rp=/usr/local/srccd $rpif [ ! -s "$rp/nginx-1.14.0" ]thenwget http:/......

会当凌绝顶
2018/05/11
0
0
安转luajit 和 cjson模块

安装luajit 从luajit下载源码,make && make install 顺利安装缺省路径安装在/usr/local/export LUAJITLIB=/usr/local/lib export LUAJITINC=/usr/local/include/luajit-2.0 # 版本号自行修改......

dayan_
2014/12/14
0
0
Building openresty1.7.10.1 with luajit on windows

Building openresty1.7.10.1 with luajit on windows using Cygwin, 在windows下用Cygwin下编译带Luajit的openresty 2013-11-27 15:39 815人阅读 评论(0) 收藏 举报 (heeroz原创 )First i......

epiclight
2015/06/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

在 Ubuntu 上为 CentOS 编译 Rust 程序

现在 CentOS 8 还没出来,最新的是 CentOS 7.6,上面搭载的 glibc 版本是 2.17,都已经是 2012 年那时候的版本了。 现在开发者比较常用的桌面 Linux 系统,比如 Ubuntu / Debian / Mint / A...

helloclia
30分钟前
8
0
Android Multimedia框架总结(一)MediaPlayer介绍之状态图及生命周期

前言:从本篇开始,将进入Multimedia框架,包含MediaPlayer, Camera, Surface, MediaRecord, 接下来几篇都是MediaPlayer相关。同样看下Agenda如下: MediaPlayer的状态图 Idle 状态 End 状态...

天王盖地虎626
57分钟前
2
0
IntelliJ IDEA创建第一个Spring boot项目

下载maven:http://maven.apache.org/download.cgi 开发工具:IntelliJ IDEA JDK: Java JDK1.8 ## 1.为了第一个项目初始化速度加快,我们先来配置maven: 添加配置: 选择Build,Execution,Dep...

凌宇之蓝
今天
3
0
Coding and Paper Letter(四十五)

资源整理。 1 Coding: 1.Python库gempy,一种基于Python的开源三维结构地质建模软件,它允许从界面和方向数据隐式(即自动)创建复杂的地质模型。 它还支持随机建模以解决参数和模型的不确定...

胖胖雕
今天
7
0
golang 声明一个指定长度的数组,用于后续添加

很多时候我们需要声明一个指定长度的数组,用于后续添加.在使用go的时候要注意,下面的第一个例子会有报错 "non-constant array bound",应该使用第二个例子. Length 是动态的值 有报错的例子 ...

漫步海边小路
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部