さぽろぐ

旅行・温泉・観光  |その他の都道府県・海外

ログインヘルプ


2012年11月13日

RubyとWindowsとzlib

先日,Ruby 1.9.3-p327がリリースされました.さっそくWindowsマシンにインストールしました.

ってWindowsはサーバじゃなくてクライアントマシンだな...まあとりあえず「自宅サーバ」のカテゴリに入れておきます.

公式サイトで提供しているwin32のバイナリは更新が1.9.2で停止しているようなので,自分でビルドします.Visual Studioを使ってビルドしてしまったので,検索でたどり着いた人のお役には立てないかもしれませんが.

  1. ソースコードを公式サイトからダウンロードして展開.

  2. 必要なライブラリのヘッダファイルを展開先のincludeディレクトリに,libファイルをルートディレクトリにコピー.

  3. VSコマンドプロンプトを開き,ルートディレクトリにcdして,configure\win32→nmake→nmake test→nmake install.


私の環境では,zlib,libyaml,opensslのライブラリが必要になるようです.まあこれらは先日ビルドしたばかりなので,今回はそれを使い回すことにします.あとは特に問題もなくビルドが通りました.

...で,わざわざ記事にしたのは,以前は余計な手間を加えていたからです.えーと,zlib.hをインクルードするときには,あらかじめZLIB_WINAPIをdefineしておくとどこかで聞いていたので,かつてはそのようにしていました.ところがそうするとRubyのビルドが通らないのです.対症療法として,Ruby側のzlibのソースに__stdcallを勝手に付け加えて対応していました(せめてWINAPIにしろよー).
これ,STDCALLな呼び出し規約に従っているWindowsアプリケーション(WindowsAPIがSTDCALLなので,多くの場合はアプリケーションもそうなっている,ということ?)に対応するためなんですね.ところがRubyはCDECLに従っているっぽいので,そういう改変は不要である,という結論を得ることができました.

...実はサーバマシンでインストールに失敗しているんですよねーface07
そっちの方も何か発見があれば書き込んでみます.



あなたにおススメの記事

タグ :RubyWindows

同じカテゴリー(自宅サーバ)の記事
 RubyとWindowsとzlib(2) (2013-03-05 21:46)

Posted by あるでん茶 at 21:36│Comments(0)自宅サーバ
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

削除
RubyとWindowsとzlib
    コメント(0)