2010-12-16 143 views
3

有没有一种方法可以从简单的lua脚本创建独立的可执行文件?通过简单的我的意思是:我只是使用lua 5.1提供的。将lua脚本编译为独立的可执行文件

如果是这样,是否有某种“交叉编译器”可用?我想为我的mac osx系统上的linux系统创建可执行文件。

在此先感谢!

回答

7

您可以使用chmod +x可执行的Lua脚本并添加#!/usr/bin/env lua。但是你需要安装一个Lua解释器。有关其他方法,请参阅我的srlua

+0

是的,我知道的#!的方式......但我希望有一种方法来在系统上运行脚本卢阿不是安装。但srlua的东西看起来很有趣! – aurora 2010-12-16 10:09:27

+0

我认为srlua最符合我的需求。非常感谢! – aurora 2010-12-26 13:52:36

+0

非常感谢,它的确有帮助。 – Hedin 2011-03-10 12:19:35

1

我不知道任何“开箱即用”的准备。

一个非常简单的方法是修改lua附带的lua解释器,将自定义脚本包含在二进制文件中(并可能禁用它的交互选项)。

通过这种方式,您可以使用该可执行文件启动脚本。

有一个lua2bin(如果我记得它的名字是正确的)将lua脚本转换为可能包含在你的应用程序中的c文件。

+0

啊,我花了太长时间写这个,而路易斯打我相关的答案:) – Kaos 2010-12-16 09:47:41

+0

感谢提示我会看看! – aurora 2010-12-16 10:05:29

4

murgaLua打包一个单独的可执行编译器,并且squish也非常适合压缩lua脚本,甚至还有其他文件和目录树在1中简单分发文件(尽管您仍然需要运行库来执行该文件)。

+0

压扁看起来很有趣。也许我可以和一些编译器一起使用它。谢谢! – aurora 2010-12-17 13:15:29

+0

即使我认为,该srlua适合我的需要最好的情况下,我需要这个,再次感谢您的帮助。 murgaLua似乎也是非常有趣的项目。 – aurora 2010-12-26 13:53:36

0

尝试使用Lua的bin2c,它会给你你的lua脚本的C源代码。如果你使用的是外部的lua库,它可能会更难以拉开,但是挤压可以帮助解决这个问题。或者你也可以luaL_loadstring一切

+1

bin2c在最近的版本中未提供。但是,有http://lua-users.org/wiki/BinToCee – BMitch 2011-09-02 20:31:12

0

LuaJIT 2.0.4已经发布了2015年5月14日
(我使用它在Debian基于linux(Crunchbang)

http://luajit.org

$ luajit -v 
LuaJIT 2.0.4 -- Copyright (C) 2005-2015 Mike Pall. http://luajit.org/ 
$ luajit -e 'print(_VERSION)' 
Lua 5.1 

(坚持这在你的脚本的顶部)
#!/ usr/bin/env luajit

相关问题