From: nobuyoshi nakada Date: 2005-10-25T13:07:47+09:00 Subject: [ruby-dev:27505] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris なかだです。 At Tue, 25 Oct 2005 11:28:51 +0900, U.Nakamura wrote in [ruby-dev:27504]: > | 確かに mingw と VisualC++ にはバイナリ互換があって、拡張ライブラリを > | 融通しあえるとどこかで読んだ気はするのですが・・・ > > バイナリ互換は事実なんですけど、ソースレベルでの互換性は誰も > 保証してないわけで。 > この人の場合、MinGWでの拡張ライブラリの作成時にmswin32用のヘ > ッダを使おうとしてるわけですから、うまく行かなくても仕方あり > ません。 ヘッダというよりインポートライブラリですかね。gccはdeclspecがな いとDLL側に自動的に__imp__hogeというthunkを追加するのに対して、 VCはdeclspec(dllimport)されたものに対してだけインポートする側で 追加しているように見えます。 $ dumpbin -symbols i686-mingw32/libmsvcrt-ruby18.dll.a | grep -c __imp__rb 691 $ dumpbin -symbols i686-mswin32/msvcrt-ruby18.lib | grep -c __imp__rb 0 まぁ、いずれにしてもmingw32とmswin32との互換性というのは、それ ぞれでコンパイルされた拡張ライブラリがお互いにロードできるとい うものであって、環境を混ぜてコンパイルできるというものではあり ません。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦