旧・無印吉澤

昔はてなダイアリーに書いていた記事のアーカイブです

Windows(MSWIN32)用のRuby拡張ライブラリを作る方法

MSWIN32用(cygwin用じゃなくて)のRuby拡張ライブラリ(ダイナミックライブラリ)を作る方法がなかなか分からなくて苦戦したので、せっかくだからここにその方法をメモしときます。

ちなみに、Linuxの場合はこう。

  1. 拡張ライブラリの内容をC/C++で記述する
  2. Makefileを生成するためのRubyスクリプトextconf.rbを作る
  3. Makefileを生成する
    $ ruby extconf.rb
  4. 拡張ライブラリをコンパイルする
    $ make
  5. 拡張ライブラリをインストールする
    $ make install

それが、MSWIN32の場合になるとこう。

  1. Linuxの場合と同じ
  2. 同上
  3. 同上
  4. Microsoft Visual Studio等をインストールしたフォルダ以下にあるvcvars32.batを実行して、VC++コンパイルする環境を整える
    Microsoft Visual Studio .NETがインストールされている環境下ではC:\Program Files\Microsoft Visual Studio .NET\Vc7\bin\vcvars32.batを実行すればよい)*1
  5. 拡張ライブラリをコンパイルする
    >nmake
  6. 拡張ライブラリをインストールする
    >nmake install

最初のうち「拡張ライブラリの作り方」で探してたら全然見つからなかったんですが、MSWIN32でのコンパイル方法を探す方法に切り替えたらRuby Install guideにぶつかって、それ読んでやっと分かりました。nmakeなんてのがあったんですね……Windowsプログラミングなんてほとんどやったこと無かったんで、なかなか気付きませんでした。

*1:単にnmakeのあるフォルダにパスを通すだけではDLLが足りないというエラーが出てしまうので注意。