2012-04-03 5 views
6

普通の.luaファイルをluacでコンパイルした場合、結果はLuaライブラリやインタープリタなしで実行できますか?luacによって生成されたバイトコードは、Luaライブラリのないコンピュータでも使用できますか?

+0

私はOPが本当に求めていたと思っていることを反映するために、私の(確かに重い)編集で質問を改善しようとしました。私が間違っていたら、私を大胆に修正してください!いずれにしても、この質問は、Luaの新規ユーザーに見られる時折の混乱を反映しており、価値があると思います。 – RBerteig

答えて

7

いいえコンパイラなしでビルドされたLuaのバージョンでも実行できますが、コードを実行するにはまだLuaインタプリタが必要です。

なお、コンパイルされたLuaバイトコードもマシン固有です。つまり、あるアーキテクチャーでコンパイルしてから別のアーキテクチャーでその出力を実行することはできません(エンディアン、タイプのサイズなど)。

+0

説明をありがとう! – user1309306

+0

保留中の編集を破棄してください!私は全く間違っていた。 Luaのバイトコードの移植性は疑わしいですが、私はほとんど研究をしていませんでした。謝罪いたします。 – Deco

1

あなたのコードが動的ロードベースの機能(loadstring、loadfile、requireなど)を使用していない場合、コンパイラが発行するコードはこのバーチャルで実行されるコードであるため、機械。これにより、Luaは既に小さなフットプリントをオリジナルの1/3に簡単にカットできます。

しかし、これは現在の既存のアーキテクチャのネイティブバイナリコードではないので、VMの助けなしで直接実行することはできません。

関連する問題