mieki256's diary



2021/02/01(月) [n年前の日記]

#1 [prog] Luaスクリプトのexe化を試してみたり

Luaスクリプトをexe化できそうかどうかを試してみたり。環境は Windows10 x64 20H2。

以下のページを参考にしつつ作業。

_天地有情 LuaスクリプトをEXE化する

以下から、Windows用のLuaをDL。

_Lua - Joe DF's Builds 解凍して、今回は C:\tools\lua\ 以下に置いてみた。環境変数 PATH に通しておく。

exe化を試すスクリプトは以下。

hello.lua
-- sample
print("Hello world!")
print("Wuff Wuff Lua")

以下で Luaスクリプトをexe化できるはずだったけど…。
glue.exe C:\tools\lua\srlua.exe hello.lua hello.exe

出来上がった hello.exe を実行すると以下のエラーが出る。
> libgcc_s_dw2-1.dll が見つからないため、コードの実行を続行できません。
> プログラムを再インストールすると、この問題が解決する可能性があります。

ググったところ、「MinGW gcc 6 でビルドされた lua53.dll は LIBGCC_S_DW2-1.DLL を必要とします。」ということらしい。

_nyagos で lua53.dll のかわりに GopherLua を使おう - Qiita

前述のサイト、 _Lua - Joe DF's Builds をよくよく眺めてみたら、libgcc_s_dw2-1.dll.zip も公開されていた。DL・解凍して、libgcc_s_dw2-1.dll を入手。exeファイルと同じ場所にコピーしてみた。また、lua53.dll も一緒にコピーした。この状態なら hello.exe を実行することができた。

ちなみに、Lua 5.2.3 (lua-5.2.3_Win32_bin.zip , srlua-5.2.3_Win32_bin.zip) で試したところ、.dll をコピーしなくても hello.exe を動作させることができたように見えた。

uLuaを利用してexe化。 :

ググっていたら、uLua というツール(?)を使うことでもexe化できるらしいと知った。

_uLua (REPL/インタプリタ/コンパイラ/リンカ 兼用) (utf8用) - 秀丸マクロ.net

DL・解凍して、C:\tools\lua\ に uLua.exe も置いておいた。

使い方は以下。一応メモ。
  • Luaスクリプトを実行 : uLua.exe hello.lua
  • Luaスクリプトをコンパイル : uLua.exe -o hello.out hello.lua -compile
  • コメントを削除してコンパイル : uLua.exe -s -o hello.out hello.lua -compile
  • コンパイルしたファイルを実行 : uLua.exe hello.out
  • exe化 / リンカとして実行 : uLua.exe hello.lua hello.exe -link

uLua を使って hello.exe を作ってみたところ、.dll のコピー等をしなくても動作するように見えた。

以上、1 日分です。

過去ログ表示

Prev - 2021/02 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project