2023/10/16(月) [n年前の日記]
#1 [dxruby] Ruby 3.2.2 x86 上で DXRuby を動かせるか試してみた
Windows10 x64 22H2上で、Ruby 3.2.2 x86 (RubyInstaller2, DevKit付き)をインストールしたけれど。その後、gem を使ってインストールした2Dゲーム制作ライブラリ DXRuby が動かなかった。
今現在、gem でインストールできる DXRuby 1.4.7 は Ruby 2.5 - 3.0 x86 までの対応なので ―― Ruby 2.5 - 3.0 x86 の dxuby.so は同梱されているけれど、Ruby 3.2.2 x86 用の dxruby.so は同梱されていないから動かないのは当たり前なのだけど、手元の環境で Ruby 3.2.2 x86 用の DXRuby をビルドしたら動くのだろうかと気になったので、ビルドできるか試してみることにした。
> ruby --version ruby 3.2.2 (2023-03-30 revision e51014f9c0) [i386-mingw32] > gem install dxruby Fetching dxruby-1.4.7.gem Successfully installed dxruby-1.4.7 Parsing documentation for dxruby-1.4.7 Installing ri documentation for dxruby-1.4.7 Done installing documentation for dxruby after 0 seconds 1 gem installed
今現在、gem でインストールできる DXRuby 1.4.7 は Ruby 2.5 - 3.0 x86 までの対応なので ―― Ruby 2.5 - 3.0 x86 の dxuby.so は同梱されているけれど、Ruby 3.2.2 x86 用の dxruby.so は同梱されていないから動かないのは当たり前なのだけど、手元の環境で Ruby 3.2.2 x86 用の DXRuby をビルドしたら動くのだろうかと気になったので、ビルドできるか試してみることにした。
◎ ビルド手順 :
ビルド方法は、公式配布サイトの README.md で説明されてる。
_GitHub - mirichi/dxruby: gem作成用。ソースもここで管理しております。
説明に従って作業してみた。
まず、コンパイラ込み(DevKit付き)の RubyInstaller2 をインストール。これはもうインストール済み。
作業用に、任意のディレクトリを作成して、その中に入る。今回は、D:\Ruby\builds\dxruby\ というディレクトリを作って、その中に入れることにした。
git がインストール済みで使える環境なら、git clone で dxruby のリポジトリを入手。
もしくは、github から dxruby のリポジトリを zip でダウンロードして解凍してもいい。右上の「Code」というボタンをクリックすれば、「Download ZIP」というリンクがあるので、それをクリックすれば dxruby-master.zip が入手できる。
ソース、というか extconf.rb があるディレクトリに移動する。ext\dxruby\ が対象のディレクトリ。
コンパイラを使える状態にする。以下を入力。大量に色々表示されるけどキニシナイ。
Makefile を自動で生成する。Makefile は、ビルド処理手順が書かれているファイルのこと。
「creating Makefile (Makefile を作ったよ)」と言っているので、make と打ってビルドする。
ビルドが成功すれば、カレントディレクトリ直下に dxruby.so が生成される。
Ruby 3.2.2 x86 に DXRuby (dxruby.so) をインストールする。(しかるべき場所にコピーする)
dxruby.so が、(Ruby 3.2.2 x86インストールフォルダ)\lib\ruby\site_ruby\3.2.0\i386-msvcrt\ 以下にコピーされた。
この状態で、手元にある DXRuby のサンプルを動かしてみたところ、大半のサンプルは動いてくれた。
ということで、Windows10 x64 22H2 + Ruby 3.2.2 x86 (RubyInstaller2, DevKitつき) 上でも、自分でビルドすれば DXRuby が動きそうだと分かった。
_GitHub - mirichi/dxruby: gem作成用。ソースもここで管理しております。
説明に従って作業してみた。
まず、コンパイラ込み(DevKit付き)の RubyInstaller2 をインストール。これはもうインストール済み。
作業用に、任意のディレクトリを作成して、その中に入る。今回は、D:\Ruby\builds\dxruby\ というディレクトリを作って、その中に入れることにした。
mkdir D:\Ruby\builds\dxruby cd /d D:\Ruby\builds\dxruby
git がインストール済みで使える環境なら、git clone で dxruby のリポジトリを入手。
git clone https://github.com/mirichi/dxruby.git
もしくは、github から dxruby のリポジトリを zip でダウンロードして解凍してもいい。右上の「Code」というボタンをクリックすれば、「Download ZIP」というリンクがあるので、それをクリックすれば dxruby-master.zip が入手できる。
ソース、というか extconf.rb があるディレクトリに移動する。ext\dxruby\ が対象のディレクトリ。
cd dxruby\ext\dxruby
コンパイラを使える状態にする。以下を入力。大量に色々表示されるけどキニシナイ。
ridk enable
Makefile を自動で生成する。Makefile は、ビルド処理手順が書かれているファイルのこと。
ruby extconf.rb
> ruby extconf.rb checking for -ldxguid... yes checking for -ld3d9... yes checking for -ld3dx9_40... yes checking for -ldinput8... yes checking for -ldsound... yes checking for -lgdi32... yes checking for -lole32... yes checking for -luser32... yes checking for -lkernel32... yes checking for -lcomdlg32... yes checking for -lwinmm... yes checking for -luuid... yes checking for -limm32... yes checking for d3dx9.h... yes checking for dinput.h... yes checking for rb_enc_str_new()... yes creating Makefile
「creating Makefile (Makefile を作ったよ)」と言っているので、make と打ってビルドする。
make色々な警告が表示されるけど、あくまで警告で、エラーではないのでキニシナイ。
ビルドが成功すれば、カレントディレクトリ直下に dxruby.so が生成される。
> dir *.so /b dxruby.so
Ruby 3.2.2 x86 に DXRuby (dxruby.so) をインストールする。(しかるべき場所にコピーする)
make install
> make install /usr/bin/install -c -m 0755 dxruby.so /D/Ruby/Ruby32-x86/lib/ruby/site_ruby/3.2.0/i386-msvcrt
dxruby.so が、(Ruby 3.2.2 x86インストールフォルダ)\lib\ruby\site_ruby\3.2.0\i386-msvcrt\ 以下にコピーされた。
> dir D:\Ruby\Ruby32-x86\lib\ruby\site_ruby\3.2.0\i386-msvcrt\*.so /b dxruby.so
この状態で、手元にある DXRuby のサンプルを動かしてみたところ、大半のサンプルは動いてくれた。
ということで、Windows10 x64 22H2 + Ruby 3.2.2 x86 (RubyInstaller2, DevKitつき) 上でも、自分でビルドすれば DXRuby が動きそうだと分かった。
◎ 注意点 :
Windows10 は DirectX 9.0 が標準で入ってないので、そのままでは DXRuby も動かないそうで。別途 d3dx9_40.dll を入手して、しかるべき場所にコピーしないといかんらしい。そのあたりの手順は以下で解説されているので参考に。
_Windows10では、DXRubyを動かすのに d3dx9_40.dllが必要 - Issue #3 - mirichi/dxruby - GitHub
あるいは、以下から入手できそう。
_DXRubyの実行環境構築 - EastBack Archives
_Ruby実行環境のダウンロード - EastBack Archives
_Windows10では、DXRubyを動かすのに d3dx9_40.dllが必要 - Issue #3 - mirichi/dxruby - GitHub
あるいは、以下から入手できそう。
_DXRubyの実行環境構築 - EastBack Archives
_Ruby実行環境のダウンロード - EastBack Archives
[ ツッコむ ]
以上です。