Windows Lua可执行

max*_*xam 6 c windows lua executable compilation

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

Lor*_*ica 9

srlua仅作为源分发,因此您必须首先编译它(有关获取免费C编译器的建议,请参阅此答案).

顺便说一句,Cygwin根本就没有必要.上述链接将引导您安装TDM-GCC的说明,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
Run Code Online (Sandbox Code Playgroud)

我假设所有相关文件都放在同一目录中,并从命令行更改为该目录.

附录:我只是仔细检查了srlua的官方下载页面,我看到还有一个已经编译过的Windows二进制文件包.所以,你可以跳过所有从源代码部分的编译和只需下载并解压这个.

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

  • 该脚本从第一行开始执行。从技术上讲,脚本本身是 Lua 函数的主体,而该函数是您运行脚本时由解释器执行的。在其他语言中,您可以将其称为“匿名”函数,但在 Lua 中,这将是具有误导性的术语,因为函数在技术上没有名称(只有变量具有),因为它们是(一等)值。您看到的函数名称确实是具有函数值的变量(局部变量、全局变量或表字段)。顺便说一下,在 Lua 中,您可以在其他函数中定义新函数。 (2认同)