开源项目luaToEXE: 将.lua封装为自带解释器无lua环境依赖的可执行文件工具

引言

将.lua文件编译为自带解释器,无环境依赖的.exe的标准做法是使用srlua.不过,其本身已有十来年未有更新,同时也未提供编译好的二进制文件(很多人编译的srlua未考虑依赖问题导致编译后的程序在无lua环境中运行时报缺失dll错误),并不是即开即用.

luaToEXE是一个封装了srlua的开源项目,旨在为将.lua编译为自带解释器的.exe提供简单的解决方案.

特点:

  • 简单易用
  • 编译后的.exe无依赖(在Windows沙盒环境下测试通过)
  • 支持多Lua版本选择

项目包括两个子项目:

  1. lua-to-exe: 一个Python库,提供转换的API函数和图形界面
  2. exelua: 一个命令行工具程序,包括32位及64位版本

链接:

教程: lua-to-exe

  1. 使用pip install lua-to-exe安装

2. 在你的项目中使用import lua_to_exe导入包(注意是_)

  1. 图形界面: 运行lua_to_exe.gui()唤起图形界面

    • 包括输入.lua,输出.exe的文件(名)选择及转换按钮
    • 下拉框可选lua版本.-32表示32位,以此类推

4. API: 调用lua_to_exe()函数

markdown 复制代码
-   `lua_to_exe(lua_file, exe_file, lua_version='5.1.5-64')`,参数列表依次为输入的`.lua`文件,输出的`.exe`文件,及可选的lua版本(默认为5.1.5-64)
-   调用`all_available()`可获取所有可用的lua版本名字典

教程: exelua

  1. 在Release页面下载对应位数的exelua

2. 解压并将目录添加至环境变量,重启电脑.注意,确保srlua文件夹在同目录下

3. 在Windows终端中运行exelua -v,输出版本号表示安装成功

  1. 输入exelua -h获取使用帮助,输入exelua -list(初次运行可能耗费一些时间)列出所有可用版本

5. 运行exelua -c <input.lua> <output.exe> [-lua <version>]执行转换.参数依次是,输入的.lua文件路径,输出的.exe文件路径,可选的-lua(如需指明lua版本)及对应的版本.例如,将helloworld.lua转换为helloworld.exe的指令可以是exelua -c helloworld.lua helloworld.exe,使用默认的5.1.5-64/5.1.5-32版本的lua解释器.

求Star

如果项目有帮助到你,还请不吝啬点几个Star了 :)

相关推荐
炸薯条!8 小时前
博客系统测试报告
开发语言·lua
BuHuaX2 天前
Lua 与 ToLua:运行机制及热更新原理
开发语言·unity·junit·c#·lua
努力努力再努力wz2 天前
【Lua 入门系列】模块与包(一):从多文件组织到require 运行时加载机制、模块缓存、预加载搜索与 Lua 文件搜索机制
开发语言·junit·lua
UWA2 天前
多人战斗中Lua持续高耗时,是瞬时峰值还是高频调用在作祟
性能优化·lua·游戏开发
努力努力再努力wz3 天前
【Lua 入门系列】从执行模型到事件驱动:一文理解 Lua 有栈协程、挂起恢复与协作式调度
开发语言·lua
努力努力再努力wz3 天前
【Lua 入门系列】Lua数据结构:从 Table 出发,一文串联数组、链表、栈、队列、集合、映射与树的实现原理
数据结构·链表·lua
努力努力再努力wz4 天前
【Lua入门系列】从 Table 到元表与元方法:一文理解 Lua 的行为扩展机制
开发语言·junit·lua
麻瓜code5 天前
秒杀优化三连:Lua + 阻塞队列 + Redis Stream,响应从 3.4 秒到毫秒级
redis·junit·lua
努力努力再努力wz5 天前
【Lua 入门系列】Lua 函数深入理解:函数对象、多返回值、可变参数、闭包、递归与尾调用优化
开发语言·lua
hey you~5 天前
云呼叫中心坐席自动分配实战:ACD 策略、Redis+Lua 实现与排查清单
数据库·redis·lua·云呼叫中心·acd·坐席分配·坐席状态机