2022/11/04(金) [n年前の日記]
#2 [ruby] mrubyの実行バイナリをビルドしてみた
mruby は実際にどんなAPIを持っているのか今一つ分からないので、ローカルで動作確認しつつ使ってみたいなとそのためには実行バイナリ(.exe)が欲しい。ビルドしてみようかなと。環境は Windows10 x64 21H2。
以下の記事が参考になった。ありがたや。
_Windows上でmrubyをビルドし動かしてみる - Qiita
ビルドには、Visual Studio Community 2015 を使用。ちなみに、Visual Studio Community 2019 も使ってみたけど、そちらはビルドに失敗した。
ビルドに必要なツールは以下。
_Bison for Windows
VS2015 と Ruby 2.6 はインストール済みだったけど、Bison はインストールしてなかったのでインストール。
bison-2.4.1-setup.exe を入手して実行。今回は、D:\Dev\GnuWin32\ にインストールしておいた。インストール場所\bin にパスを通しておく必要があるけれど、addbison.bat を作成して、実行すればパスが通るようにしておいた。
mrubyのソースを入手。
_mruby/mruby: Lightweight Ruby
今回は zip でダウンロードした。D:\home\USERNAME\prg\mruby\mruby\ に置いた。
スタートメニューから、「VS2015 x86 Native Tools Command Prompt」を起動。bison にパスを通しつつ、カレントディレクトリを mruby のソースのある場所にする。
ビルド開始。
ビルドに成功すると、bin というディレクトリが作成されて、中に以下のファイルが入っている。
C:\Ruby\mruby-3.1.0\ というディレクトリを作成して、そこにコピーしておいた。
mruby のバージョンを確認。
その場で実行して動作確認するなら、mirb.exe を実行する。
以下の記事が参考になった。ありがたや。
_Windows上でmrubyをビルドし動かしてみる - Qiita
ビルドには、Visual Studio Community 2015 を使用。ちなみに、Visual Studio Community 2019 も使ってみたけど、そちらはビルドに失敗した。
ビルドに必要なツールは以下。
- Visual Studio 2015 (VS2019はビルドに失敗)
- Ruby 2.6.10p210 i386-mingw32
- bison for Windows 2.4.1
_Bison for Windows
VS2015 と Ruby 2.6 はインストール済みだったけど、Bison はインストールしてなかったのでインストール。
bison-2.4.1-setup.exe を入手して実行。今回は、D:\Dev\GnuWin32\ にインストールしておいた。インストール場所\bin にパスを通しておく必要があるけれど、addbison.bat を作成して、実行すればパスが通るようにしておいた。
set PATH=D:\Dev\GnuWin32\bin;%PATH%
mrubyのソースを入手。
_mruby/mruby: Lightweight Ruby
今回は zip でダウンロードした。D:\home\USERNAME\prg\mruby\mruby\ に置いた。
スタートメニューから、「VS2015 x86 Native Tools Command Prompt」を起動。bison にパスを通しつつ、カレントディレクトリを mruby のソースのある場所にする。
addbison.bat cd /d D:\home\USERNAME\prg\mruby\mruby
ビルド開始。
ruby .\minirake
ビルドに成功すると、bin というディレクトリが作成されて、中に以下のファイルが入っている。
mirb.exe mrbc.exe mruby.exe mruby-config.bat mruby-strip.exe
C:\Ruby\mruby-3.1.0\ というディレクトリを作成して、そこにコピーしておいた。
mruby のバージョンを確認。
> mruby.exe --version mruby 3.1.0 (2022-05-12)
その場で実行して動作確認するなら、mirb.exe を実行する。
> mirb.exe mirb - Embeddable Interactive Ruby Shell > RUBY_VERSION => "3.1" > puts "Hello World" Hello World => nil > exit
[ ツッコむ ]
以上です。