RubyCGI.org

RubyでCGIを作ろう


7章3節 Tips3 Win32用のRubyの拡張ライブラリをコンパイルする方法 更新日付: [2005-03-04]



お金のない身としては、Visualなんたらを買ってきてってわけにいかないので、mingwでコンパイルしたいなということで、ネットで調べたのですが、見当たらなかったので、自分で調べてみました。
(きっかけは、るびまの0005号のRuby Library Report 第 4 回 win32utils 日本語版の記事だったりします)

まず、cygwin環境を揃えます。以下から、cygwinのsetup.exeをダウンロードして、インストールをします。
http://www.cygwin.com
インストールの際には、makeとgccとrubyには必ずチェックを入れてください。(他にも必要なものがあったかも。。。)

次に、ruby-1.8.1をダウンロードしてきて、cygwin上でコンパイルをかけます。
注意点は、通常は、configure, make, make test, make installですが、configureは以下のようにします。
./configure --with-gcc='gcc -mno-cygwin' --enable-shared --prefix=/usr/local i386-pc-mingw32
あと、make installはしないてください。

これで、準備は完了です。
(次回以降はやらなくていいです)

それで、ここからは拡張ライブラリのコンパイルになります。
今回は、テストなので以下のURLの物を使います。
http://members.jcom.home.ne.jp/mitakelp/makeext.html

まず、Rubyをコンパイルしたディレクトリのextのなかに、ファイルをおきます。
こんな感じですね。
ruby-1.8.1/ext/Unyo/Unyo.c
それで、cd ruby-1.8.1/ext/Unyoします。

次に、Makefileをつくりために、以下を実行します。
ruby -r "mkmf" -e 'create_makefile("Unyo")'

次に、Makefileを少しだけ修正します。
以下のように修正を行ってください。
libdir = ../..

この状態で、コンパイルします。
make

それで出来上がったファイルは、Windows用に使えます。

私は、ActiveRubyを好んで使っているので、以下のフォルダにこれをコピーしておきます。
C:\Program Files\ruby-1.8\lib\ruby\site_ruby\1.8\i386-msvcrt

これで、コマンドプロンプトで、(ちなみにここまでの作業がすべて、cygwinのプロンプト)
以下のようなものが動けば成功でしょう。
ruby -r Unyo -e 'hoge = Hoge.new; d = hoge.gunyo(1,2,3); p d'

Ruby1.8からは、mingwで作ったライブラリとmswinで作ったライブラリを一緒に扱えるので、かなり便利ですね。
前へ (7.2. Tips2 perlとrubyの比較 ループ内の正規表現)
RubyでCGIを作ろうトップ

| トップページ | RubyによるCGIプログラミング | RubyでCGIを作ろう | リンク集 | ツールなど |