From: Hajime Hoshi Date: 2009-04-01T22:47:23+09:00 Subject: [ruby-dev:38241] MinGW における拡張ライブラリ作成と Ruby 1.8/1.9 共存について 星と申します。 私は MinGW で Ruby 拡張ライブラリを作成しています。 その際に Ruby 1.8 用と Ruby 1.9 用の拡張ライブラリを別々に作りたいのですが、 MinGW において 1. Ruby 1.8 と Ruby 1.9 を共存させ、 なおかつ 2. それぞれの Ruby の DLL ファイル名を (デフォルトの) msvcrt-ruby(バージョン番号).dll にする 方法を知りたいです。 1. のために Ruby コンパイル時の configure に --program-suffix 引数をつけた場合、 ライブラリのファイル名も変わってしまうため、 2. の条件が満たされません。 2. の条件である「Ruby の DLL 名がデフォルト」でないと、作成した拡張ライブラリが他のユーザーの環境で 動かない可能性が高くなります。理由は、 Windows において Ruby を 使用する人は大概 ActiveScriptRuby などのインストーラーを利用するものと思われますが、 その場合 ruby のコマンド名、ライブラリ名はデフォルトのままであるからです。 また、当然 Windows の Ruby ユーザーに自分の拡張ライブラリを使っていただくためには、 so ファイルのまま使っていただく必要があると思われます。 ユーザー各自が拡張ライブラリをコンパイルするというのは現実的ではありません。 そのため、 so ファイルがリンクする DLL ファイルはやはりデフォルトの名前を持つ必要があるのです。 どうぞよろしくお願いします。 -- Hajime Hoshi