Windows 10
Visual Studio 2017
1、首先我们需要Luajit的源代码 [前往下载](http://luajit.org/download.html)
2、Window只需要下载.Zip后缀的压缩包即可,红框表示稳定版,绿框为开发测试版自行取舍,笔者选的beta3的
1、我们先build 32位的Luajit.exe
2、解压我们下载的Luajit的压缩包,得到一个源码文件夹,
如下图
3、打开x86 Native Tools Command Prompt for VS 2017 并引导到源码文件夹的src文件夹下
4、输入"msvcbuild"并运行, 因为src文件夹下有一个msvcbuild.bat
我们要通过它生产对应的Luajit.exe和其他文件
5、运行之后,工具就会开始自动生产32位的Luajit.exe 及其相关文件,结束后看到如下信息
我们可以看到工具提示 x86的Luajit已经构建成功了,此时 在msvcbuild.bat的同一目录下
会生成两个我们需要的文件,分别是 "Luajit.exe"和"lua51.dll"
6、接下来才是关键操作,新建一个空的文件夹取名"Luajit32"(您随意),
然后将构建成功的"Luajit.exe"和"lua51.dll" 拷贝到新建的文件夹
7、然后新建一个名为 "lua"的空子文件夹(这个名字就不能乱取了,必须叫"lua")
8、回到"msvcbuild.bat"文件的目录(即 src),将jit文件夹整个拷贝到新建的lua空文件夹下
9、好了,现在我们已经完成x86的 Luajit.exe 工具的构建了
x64的构建 跟x86的构建是一样的,只需要运行
"x64 Native Tools Command Prompt for VS 2017"
有如下图提示即可成功生成新的x64 Luajit.exe 和 lua51.dll 然后做新建文件夹的操作
10、注意: x86和x64都是用的同一个jit文件夹下的文件,直接拷贝过去即可
11、两个版本的Luajit.exe生成完之后的样子如下图
12、最后我们来测试下工具的可用性,以x86的Luajit.exe为例
-b表示我们希望这个工具将lua代码转换成字节码模式,前面是lua文件所在路径,后面则是输出路径
如上,我们可以看到可视化的lua代码已经被转换成字节码了
1、Luajit的优势: U3D手游开发中用LUA做脚本有相当大的优势,例如热更新,代码使用及其简单和方便,
但是lua脚本又不跟C#代码一样会被打包到Dll文件里面,而是被作为游戏APP中的一种“资源”来使用,
这就带来一个问题,如果别人把资源破解了,你的lua代码文件就会赤裸裸的呈现在别人面前
所以我们要对代码进行一定程度上的处理,通过 Luajit进行 转成字节码,可以实现相当于代码加密
的效果。至少可以防止小白使用常规工具暴力的将代码反编译出来.
2、Luajit 的构建不仅仅局限于Windows上,你也可以在MAC上构建,由于笔者能力有限,其他平台的没有测试过,但是思路都是一样的。
3、32位的Luajit.exe 会将lua代码转换成32byte机器使用的 32位bytes文件,64位的同理,
因此在手游开发中, 由于移动平台的特殊性(如IOS有32和64,Android 32位),
为了更好的兼容,我们最好是将lua打包成32位和64位,并将两者同时打入资源包中,
或者上传至资源服务器,当对应设备的APP拉取资源时,通过APP代码判断当前设备是x86还是x64
从而拉取对应的bytes文件,如果我们只是将32位的luabytes文件打入资源或上传资源服时,
此时x64的IOS设备若拉取并使用这些代码则会造成莫名其妙的错误,甚至游戏卡死闪退(没有做过多的测试)
笔者能力有限,若有描述错误之处,望诸位大侠不吝赐教。
感谢!