2013-08-20 36 views
6

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

+0

使用ThinApp,您可以轻松地从一堆lua.exe + lua.dll + script.lua + runme.bat文件中创建独立的exe文件。 –

回答

9

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的功能,则必须遵循我的初步建议并从源代码进行编译。

+0

非常感谢。我不明白的是:我的lua文件中有几个函数,那么如何指定哪一个应该执行?在Java或C中,我们有一个主函数并执行,但仅包含函数的lua文件又如何? – maxam

+2

脚本从第一行开始执行。从技术上讲,脚本本身就是Lua函数的主体,并且该函数是在运行脚本时解释器执行的内容。在其他语言中,你可以把它称为“匿名”函数,但是在Lua中它会引起误解,因为函数技术上没有名称(只有变量),因为它们是(一级)值。你所看到的函数名称的确是变量(局部变量,全局变量或表格字段),它们具有作为值的函数。顺便说一下,在Lua中你可以在其他函数中定义新的函数。 –

相关问题