HuldaGnodim 发表于 2021-4-19 17:50

Windows使用LuaJIT编译lua文件(32位和64位)

目前Unity游戏开发,lua热更仍然是主流,在使用时lua可以当成资源文件打成AssetBundle,但是lua文件本身是明文的,很容易被人拿到源码,所以就需要使用到lua加密,接下来要记录的就是使用LuaJIT加密lua的过程#Luajit- ####介绍lua虚拟机能够直接解析lua和luac脚本文件,而luaJIT是另一个lua的实现版本,JIT是指Just-In-Time(即时解析运行),luaJIT相比lua和luac更加高效- ####下载下载链接:https://luajit.org/download.html

image.png

我这里下载的是 LuaJIT-2.1.0-beta3,下载.zip就行(记得解压出来)- ####编译######1.编译64位版本1.打开VS命令行工具,运行x64 Native Tools Command Prompt for VS 20192.定位到LuaJIT-2.1.0-beta3/src目录3.执行:msvcbuild.bat gc64
image.png


image.png

######2.编译32位版本1.打开VS命令行工具,运行x86 Native Tools Command Prompt for VS 20192.定位到LuaJIT-2.1.0-beta3/src目录3.执行:msvcbuild.bat static
image.png


image.png

等待编译完毕出现=== Successfully built LuaJIT for xxxxx ===,即可在/src目录中生成luajit.exe 对应版本在/src目录下可以找到luajit.exe和lua51.dll,以及文件夹jit,这三个是我们会使用到的- ####运行新建一个文件夹(E:\LuaJIT\)把刚才生成的文件复制进去,可以再建两个文件夹分别放64位和32位的版本然后打开cmd命令行工具,定位到luajit.exe的文件夹执行:luajit.exe -b input.lua output.lua(分别传入输入和输出lua文件,output要以.lua结尾)- ####注意32位的Luajit.exe 会将lua代码转换成32byte机器使用的 32位bytes文件,64位的同理,因为游戏开发时有不同平台,需要分别使用对应的exe编译对应的bytecode,否则会读取出错(Android 32位,iOS有32位和64位)
页: [1]
查看完整版本: Windows使用LuaJIT编译lua文件(32位和64位)