- 337 名前:デフォルトの名無しさん mailto:sage [2007/12/07(金) 20:52:08 ]
- (追記) Windows における Ruby のバイナリ互換性について
ビルド環境として MinGW、 VC++6、VC++7、VC++8を考えます。 で、ちゃんと検証したわけではありませんが、おそらく以下が成立するはずです。 MinGWで作ったRubyとVC++6で作った拡張ライブラリは一緒に使える。逆も可。 MinGWで作ったRubyとVC++7で作った拡張ライブラリは一緒に使えない。逆も不可。 MinGWで作ったRubyとVC++8で作った拡張ライブラリは一緒に使えない。逆も不可。 VC++6で作ったRubyとVC++7で作った拡張ライブラリは一緒に使えない。逆も不可。 VC++6で作ったRubyとVC++8で作った拡張ライブラリは一緒に使えない。逆も不可。 これは利用されるC Runtime libraryの種類が問題になっています。 一応Windowsには異なるビルド環境で作ったオブジェクトファイルを混ぜても 「だいたい」問題なく動作させるための機構があるらしいのですが、 Rubyの場合問題が起こる部分を使っている、ということらしいです。 最近のRubyでは、ビルド時に異なるビルド環境を使おうとしてもできないような 対策が施されています。 そこで、バイナリ配布されているrubyの処理系は大半がVC++6かMinGW で ビルドされているため、人に配布するためのバイナリを作るのであれば このどちらかを使うべき、ということになります。 ttp://www.kmc.gr.jp/~ohai/diary/?date=20070305
|

|