From: Yukihiro Matsumoto Date: 2005-10-25T15:06:34+09:00 Subject: [ruby-dev:27509] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris まつもと ゆきひろです In message "Re: [ruby-dev:27508] Re: [ ruby-Bugs-2613 ] building ruby 1.8.3 on Solaris" on Tue, 25 Oct 2005 14:16:20 +0900, "U.Nakamura" writes: |VC++環境でコンパイルされたRubyで、MinGW環境でコンパイルされた |拡張ライブラリをロードすることはできます。 |MinGW環境でコンパイルされたRubyで、VC++環境でコンパイルされた |拡張ライブラリをロードすることもできます。 | |VC++環境で作成されたヘッダやライブラリを流用してMinGWで拡張ラ |イブラリを作成すること(今回の例)はできません。 |MinGW環境で作成されたヘッダやライブラリを流用してVC++で拡張ラ |イブラリを作成することもできません。 |と、いうことなのですが、英語かあ... 私が訳しても良いのですが、もうちょっと教えてください。 拡張がロードできるのに、ライブラリを「流用」できないという状 況を説明できる自信がありません。 先方は「declspecを追加すれば動くんだから」と言っていて、それ はそれで分かる気がするんです。そこを「できない」というからに は「あなたの環境では動くけど、別の状況でxxxの問題が起こるか らその変更はできない」といってあげた方が良いと思うですが、そ の「xxxの問題」ってどんなもんなんでしょう? 山本さんの返答には「extensionをstatic linkできない」って書い てあったように思うのですが、それだけだったらdynamic linkでき る方が重要な気もしますし、新たにstatic linkしていることを示 すシンボルを導入することで対処できそうな気がします(static linkとdynamic linkで同じオブジェクトファイルを使えなくちゃい けない保証はしていないし)。あるいはもっと本質的な問題がある のなら、それはそれで説明しなくちゃいけませんし。