Windows Lua 转换为可执行文件

7

你好,我有一个用Lua 5.1编写的程序。我正在Windows 7上尝试将其转换为可执行文件,但迄今为止没有成功。我阅读了其他帖子,建议使用srlua来完成这个任务,所以我已经下载了它,但我不知道下一步该怎么做。我安装了cygwin,因为我知道这是必要的,但我不知道如何使用srlua将Lua文件转换为可执行文件。感谢任何帮助。


您可以使用ThinApp轻松地将一堆lua.exe+lua.dll+script.lua+runme.bat文件制作成独立的exe文件。 - Egor Skriptunoff
2个回答

10

srlua只提供源代码,因此您必须首先编译它(有关获取免费C编译器的建议,请参见此答案)。

顺便说一句,Cygwin根本不必要。上述链接将引导您安装TDM-GCC,这是GCC编译器的Windows移植版,它将创建仅依赖于Windows默认系统库的可执行文件。

一旦您安装好了C编译器并编译了srlua,您将获得两个可执行文件glue.exesrlua.exe。后者只是一个存根,由srlua.exe使用,通过将其与Lua脚本连接起来生成最终的可执行文件。

假设您的脚本为myscript.lua,您想创建一个名为myexe.exe的可执行文件,则必须从命令行调用glue.exe,如下所示:

 glue.exe srlua.exe myscript.lua myexe.exe

我假设所有相关文件都放置在同一个目录中,并且您已经从命令行切换到该目录。

附加说明:我刚刚在srlua的官方下载页面上进行了双重检查,发现还有一个已编译为Windows二进制文件的软件包。因此,您可以跳过源代码编译部分,直接下载并解压缩这个

二进制文件位于存档中的Release子目录中。请注意,这些仅适用于Lua 5.1版本,因此,如果您的脚本使用Lua 5.2的功能,则必须遵循我的最初建议并从源代码编译。


谢谢,它很好用。但我不明白的是:我的lua文件中有几个函数,那么我该如何指定应该执行哪一个?在Java或C中,我们有一个主函数来执行,但是仅包含函数的lua文件怎么办? - maxam
2
脚本从第一行开始执行。技术上讲,脚本本身就是 Lua 函数的主体,当您运行脚本时,解释器会执行该函数。在其他语言中,您可以将其称为“匿名”函数,但在 Lua 中,这将是误导性的术语,因为函数技术上没有名称(只有变量有),因为它们是(一级)值。您看到的函数名称实际上是具有函数作为值的变量(局部变量、全局变量或表字段)。顺便说一下,在 Lua 中,您可以在其他函数内定义新函数。 - Lorenzo Donati support Ukraine

0

目前来说,这些工具都可以编译或打包构建。

  • luastatic
    将Lua脚本编译成可执行文件的编译器。
  • dogfood
    用于构建自包含Lua可执行文件的工具。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接