2010-12-16 363 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