文档章节

luac luajit接入笔记

 为往圣继绝学
发布于 2016/05/17 12:03
字数 596
阅读 142
收藏 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
07/11
0
0
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:/......

会当凌绝顶
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
生产环境上nginx 不覆盖添加lua模块

需求如下: 需要在nginx配置文件中判断请求中是否带某参数变量,nginx配置本身没有此判断功能。 网上查找资料,可以在nginx中添加lua模块,使用lua的脚本去判断。比较靠谱的文章:CentOS系统...

-悟空-
2015/06/11
0
2

没有更多内容

加载失败,请刷新页面

加载更多

docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
10
0
ios多个target

1.建立3个target,分别为heroone,heroone test,heroone dev;分别为正式环境,test环境,dev环境 2.注意取消掉autocreate以防止名字不对,分别以Duplicate的方式建立另外两个scheme 3.创建...

HeroHY
今天
5
0
php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
昨天
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
昨天
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部