【发布时间】:2011-05-26 10:41:36
【问题描述】:
有没有办法从一个简单的 lua 脚本创建一个独立的可执行文件?我的意思很简单:我只是在使用 lua 5.1 提供的东西。
如果是这样,是否有某种“交叉编译器”可用?我想在我的 mac osx 系统上为 linux 系统创建可执行文件。
提前致谢!
【问题讨论】:
标签: compiler-construction lua cross-compiling
有没有办法从一个简单的 lua 脚本创建一个独立的可执行文件?我的意思很简单:我只是在使用 lua 5.1 提供的东西。
如果是这样,是否有某种“交叉编译器”可用?我想在我的 mac osx 系统上为 linux 系统创建可执行文件。
提前致谢!
【问题讨论】:
标签: compiler-construction lua cross-compiling
您可以使用chmod +x 并添加#!/usr/bin/env lua 使Lua 脚本可执行。但是你需要安装一个 Lua 解释器。如需不同的方法,请参阅我的srlua。
【讨论】:
我不知道有什么“开箱即用”可以为此做好准备。
一种非常直接的方法是修改 lua 附带的 lua 解释器,以将您的自定义脚本包含在二进制文件中(并可能禁用它的交互选项)。
这样您就可以使用该可执行文件启动您的脚本。
有一个 lua2bin(如果我没记错它的名字的话)可以将一个 lua 脚本转换为一个 c 文件,你可以在你的应用程序中包含这个文件。
【讨论】:
尝试使用 Lua 的 bin2c,它将为您提供 lua 脚本的 C 源代码。如果您使用的是外部 lua 库,那么实现起来可能会有点困难,但 squish 可以帮助您解决这个问题。或者你可以只是 luaL_loadstring 一切
【讨论】:
LuaJIT 2.0.4 已于 2015-05-14 发布
(我在基于 debian 的 linux (Crunchbang) 上使用它
$ 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
【讨论】: