コンパイルされた Lua ファイル (32 ビット *.luac ファイル) は 64 ビット システムで動作しますか?
4 に答える
luac の man ページを引用するには:
luac で作成されたバイナリ ファイルは、ワード サイズとバイト オーダーが同じアーキテクチャ間でのみ移植可能です。
したがって、答えはノーです。(私はこの正確な状況を 32 ビットと 64 ビットのマシンでもテストしました。) できることの 1 つは、Lua インタープリターが (64 ビットのマシンでも) 32 ビット用にコンパイルされていることを確認することです。ルアはそれを受け入れると思います。
私の言葉を裏付ける経験はありませんが、コンパイルされたファイルを実行するために 32 ビットの lua バイナリが使用されている限り、動作するはずです。.luac
むしろ、Lua がファイルの出力とその内部構造に影響を与えるかなりの数のコンパイラ オプションを提供するという事実を考えると、同様の設定でビルドされたバイナリです。
一般に、lua 実行可能ファイルと別の lua 実行可能ファイルによって作成されたファイルを混在させて使用しないというルールがあり.luac
ます。これは、内部フォーマットが Lua バイナリ自体のコンパイル方法に大きく依存するためです。
したがって、.luac ファイルを作成した 32 ビット Lua で実行する場合、答えはイエスです。64ビットのLua実行可能ファイルで実行する場合、それはかなり明確なノーです.
すべての 32/64 ビット システムで 32 ビット バイトコードを使用するだけです。
コンパイル済みの Lua ファイルを配布する理由については言及されていませんでした (ソース コードは小さくて、読み込みが非常に高速です)。いずれにせよ、生のソースに代わるものはsquishです。