.luaソースや.luaのモジュールを、C言語ソースへ変換

LOOP Precompiler and Preloader (Lua5.1用)

  • 常時利用する.luaファイルは、別ファイルとして持っておくのではなく、
    C側に取り込んでしまいたいものです。

    そのような時、LOOP Precompiler and Preloaderが活躍します。

  • Pre-Compilation
    luaソースをluaとしてコンパイル(チャンク化)し、そのバイトコードの並びを元にC言語のソースを生成します。
    一度チャンク化しますので、luaソース内にコメントなどが書かれていても影響しません。

  • Pre-Loading
    複数の依存した.luaファイルをコンパイルしたものを実行する際には、
    どのモジュールを先に実行しなければならないか、
    という問題があります。
    .luaでいう
    require "hogehoge"
    
    というものを実行するためには、すでにhogehogeに相当するものがLuaステート上に存在する必要があるからです。
    このような順番の問題を解決するためのツールがpreloader.luaです。

bin2c (Lua5.0~Lua5.3)

  • このツールは、Lua5.0までは同封されていたツールとなります。
    luac script.lua -o script.luac
    bin2c script.luac > strict_code.c
    
    のように利用します。
    luacが無い環境の場合は、Luacのページを参照してください。

  • bin2cが無い場合は、

    #ref(): File not found: "bin2c.lua" at page "LuaTips/download/tool"

    luac.luaやbin2c.luaを使った場合のコマンドは
    lua luac.lua script.lua -o script.luac
    lua bin2c.lua script.luac > strict_code.c
    
    となります。
    C言語側で実行したい行で、出力されたCソース(先述の例ならstrict_code.c)をインクルードします。

トップ   差分 履歴 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-14 (日) 00:00:00