2013-08-20 9 views
6

こんにちは私はLuaプログラム(Lua 5.1で書かれています)を持っています。私はWindows 7上で実行可能ファイルに変換しようとしています。今まで運がない。私はこれを行うためにsrluaを使うことを提案した他の投稿をここで読んだが、ダウンロードしたが、次に何をすべきかについては迷っている。私はそれが必要であると理解してcygwinをインストールしましたが、luaファイルを実行可能ファイルに変換するためにsrluaを使用する方法はわかりません。どんな助けもありがとう。Windows Lua to executable

+0

ThinAppを使用して、lua.exe + lua.dll + script.lua + runme.batファイルの束からスタンドアロンのexeファイルを簡単に作成できます。 –

答えて

9

srluaはソースとしてのみ配布されるため、最初にコンパイルする必要があります(無料のCコンパイラを入手するにはthis answerを参照してください)。

ところで、Cygwinはまったく必要ありません。上記のリンクをクリックすると、Windowsのデフォルトシステムライブラリのみに依存する実行可能ファイルを作成するGCCコンパイラのWindowsポートTDM-GCCをインストールする手順が表示されます。

Cコンパイラを用意してsrluaをコンパイルしたら、glue.exesrlua.exeという2つの実行可能ファイルがあります。この後者は、srlua.exeによって使用されるスタブで、最終的な実行可能ファイルをLuaスクリプトに参加させることによって生成されます。

スクリプトと仮定するとmyscript.luaであり、あなたは次のようにコマンドラインからglue.exeを呼び出す必要がありmyexe.exeという名前の実行ファイルを作成したい:私は、関連するすべてのファイルが同じディレクトリに配置されているものと

glue.exe srlua.exe myscript.lua myexe.exe 

とコマンドラインからそのディレクトリに変更しました。

補足:srluaの公式ダウンロードページをもう一度チェックしたところ、既にWindows用のコンパイル済みバイナリパッケージがあることがわかりました。したがって、ソース部分からすべてのコンパイルをスキップして、thisをダウンロードして解凍することができます。

バイナリは、アーカイブ内のサブディレクトリReleaseにあります。これらはLua 5.1のみのため、スクリプトでLua 5.2の機能を使用している場合は、私の初期のアドバイスに従い、ソースからコンパイルする必要があります。

+0

すごくうれしくありました。私が理解していないことはこれです:私は私のLUAファイルにいくつかの機能を持っていますので、どのファイルを実行すべきかをどのように指定するのですか? javaやCではmain関数を持っていますが、実行するだけですが、関数だけを含むluaファイルはどうでしょうか? – maxam

+2

スクリプトは最初の行から実行されます。技術的には、スクリプトそのものはLua関数の本体であり、その関数はスクリプトを実行するときにインタープリタによって実行されるものです。他の言語では、 "匿名"関数と呼ぶこともできますが、Luaでは(ファーストクラスの)値なので、技術的に名前がない(変数のみがある)ため、誤解を招く用語になります。関数名として表示されるのは、関数を値として持つ変数(ローカル、グローバルまたはテーブルフィールド)です。ところで、Luaでは、他の関数の中で新しい関数を定義することができます。 –