【问题标题】:Windows Lua to executableWindows Lua 可执行文件
【发布时间】:2013-08-22 19:42:35
【问题描述】:

嗨,我有一个 Lua 程序(用 Lua 5.1 编写)。我在 Windows 7 上,试图将其转换为可执行文件。到目前为止没有运气。我在这里阅读了其他建议使用 srlua 来执行此操作的帖子,所以我已经下载了它,但我不知道下一步该做什么。我安装了 cygwin,因为我知道这是必要的,但我不知道如何使用 srlua 将 lua 文件转换为可执行文件。任何帮助将不胜感激。

【问题讨论】:

  • 您可以使用 ThinApp 从一堆 lua.exe+lua.dll+script.lua+runme.bat 文件轻松制作独立的 exe 文件。

标签: c windows compilation lua executable


【解决方案1】:

srlua 仅作为源代码分发,因此您必须先编译它(有关获得免费 C 编译器的建议,请参阅 this answer)。

顺便说一句,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 二进制文件的包。因此,您可以跳过源代码部分的所有编译,只需下载并解压缩 this

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

【讨论】:

  • 谢谢,效果很好。但我不明白的是:我的 lua 文件中有几个函数,那么我如何指定应该执行哪个函数?在 java 或 C 中,我们有一个 main 函数并执行,但是 lua 文件只包含函数呢?
  • 脚本从第一行开始执行。从技术上讲,脚本本身就是 Lua 函数的主体,当您运行脚本时,解释器会执行该函数。在其他语言中,您可以将其称为“匿名”函数,但在 Lua 中,这将是一种误导性术语,因为函数在技术上没有名称(只有变量有),因为它们是(一等)值。您所看到的函数名称确实是具有函数值的变量(局部变量、全局变量或表字段)。顺便说一句,在 Lua 中,您可以在其他函数中定义新函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2010-09-16
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
相关资源
最近更新 更多