From: Taro MURAOKA Date: 2011-09-14T00:54:34+09:00 Subject: [ruby-dev:44513] [Ruby 1.9 - Feature #5315] config.hからコンパイラのバージョンチェックを外して欲しい Issue #5315 has been updated by Taro MURAOKA. 残念ながら筋の良いガードの仕方はないです。このあたりはWindowsのDLLの問題ですね。 それでもあえて言えばRubyがランタイムライブラリの生成するオブジェクトを、 I/Fを通じて外と直接やりとりする設計になってるのも筋は良くないね、とは指摘しておきます。 もちろんそんなことでI/Fを変えるのがコストに見合わないことは理解した上での「あえて」です。 ---------------------------------------- Feature #5315: config.hからコンパイラのバージョンチェックを外して欲しい http://redmine.ruby-lang.org/issues/5315 Author: Taro MURAOKA Status: Third Party's Issue Priority: Normal Assignee: Category: Target version: 1.9.2 http://www.garbagecollect.jp/ruby/mswin32/ja/ で配布しているrubyで確認したので外しているかもしれません。その場合はあしからず。 問題: rubyの外部モジュールをコンパイルする際に、ruby本体と異なるバージョンのコンパイラではコンパイルできない 詳細: 上記で配布されているRubyはMSVC9でコンパイルされています。 一方VimなどネイティブでRubyとリンクする外部モジュールをMSVC10でコンパイルしようとした場合 Ruby配布物に含まれている include/ruby-1.9.1/x64-mswin64_80/ruby/config.h に コンパイラのバージョンチェックがあるため、そのままでは利用できません。 > #if _MSC_VER != 1400 > #error MSC version unmatch: _MSC_VER: 1400 is expected. > #endif 提案内容: なにか理由があってこうなっているのかもしれませんが、 手元で無効化して回避しても特に問題もなく使えているようです。 なのでこのチェック自体を破棄するか、もともとの理由に即したものに修正することを提案します。 -- http://redmine.ruby-lang.org