読者です 読者をやめる 読者になる 読者になる

ごちゃログぴこっ

はなまるデジタル創作紀行(DTM、TAS、いろいろな技術)

Lua for Windows の LUA_PATH 設定(EmuLua からモジュールを使う)

Lua for Windows には多数のライブラリが含まれていますが、それらをTAS用エミュレータ組み込みの Lua から使おうとしてもロードに失敗します。これはパス設定が適切ではないためです。ロードが成功するようにパス設定を見直しましょう。

このようなタイトルですが、他の環境でライブラリがうまく検索されない場合も同じ解決策を取ることになるでしょう。

環境変数の設定

以下、Lua for Windows v5.1.4-46 についての設定です。

gd.dll などのバイナリモジュールは package.cpath から検索されます。環境変数 LUA_CPATH を設定することで任意のパスを追加できますが、Lua for Windows のインストールでは設定されないようです。よって自前で設定することになります。

LUA_CPATH=;;C:\Program Files (x86)\Lua\5.1\clibs\?.dll

冒頭の ";;" はデフォルトパスを展開するための記述なので、消してはいけません。

Lua モジュールは同様に package.path から検索され、環境変数 LUA_PATH で設定します。一見するとインストール時に設定されるように見えるのですが、拡張子が ?.clua となっているため、*.lua を読み込もうとすると失敗します。よって、こちらも値を変更しなければなりません。

# ?.lua と ?.luac を両方含むように設定する
LUA_PATH=;;C:\Program Files (x86)\Lua\5.1\lua\?.lua;C:\Program Files (x86)\Lua\5.1\lua\?.luac

これで無事にモジュールが使えるようになります。個々のエミュレータディレクトリを汚す必要がなくなるのですっきりしますよ。