ブログトップ 記事一覧 ログイン 無料ブログ開設

それはそれ。これはこれ。 このページをアンテナに追加 RSSフィード

2003 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 11 | 12 |
2013 | 01 | 02 | 04 | 05 | 07 | 08 | 10 | 11 | 12 |
2014 | 02 | 03 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 05 | 06 | 07 | 11 |
2016 | 07 |
2017 | 01 | 03 | 06 | 07 | 11 |
2018 | 05 | 07 | 08 | 09 | 10 |

2011-03-02(水)

[] Windows用 Ruby1.8 で json 1.5.1 を使う場合エラーダイアログについて  Windows用 Ruby1.8 で json 1.5.1 を使う場合のエラーダイアログについてを含むブックマーク  Windows用 Ruby1.8 で json 1.5.1 を使う場合のエラーダイアログについてのブックマークコメント

「ActiveScriptRuby 1.8.7 を利用している環境json 1.5.1-mswin32 を使うと、msvcrt-ruby191.dll を呼びに行こうとして失敗する問題」g:fragile:id:ferricks:20110130

Ruby 1.8.7とjson1.5.1 x86-mswin32で、「msvcrt-ruby191.dllが見つからない」エラーid:MonteCut:20110219

等で書かれているように、mswin32版 Ruby1.8.7json 1.5.1 を自然インストールして require "json" すると、msvcrt-ruby191.dll がないというエラーダイアログが出る。RubyInstaller のような mingw32版でも同じだ。


対策方法は4つあり*1

  1. 上記記事のように、古いバージョンを使う
  2. msvcrt-ruby191.dllruby\bin 等に入れておく
  3. 自分バイナリビルドする
  4. エラーダイアログを気にしない

1 は上記記事にあるので省略。

2 は、http://www.garbagecollect.jp/ruby/mswin32/ja/download/release.html からzipファイルダウンロードしてそこからmsvcrt-ruby191.dllだけ取りだして、ruby\bin とかに入れておく。

3 はビルド環境を予め作っておく必要があるが、今後も何かと便利なのでお勧め。mswin32の環境を作るのはVisual Studio Expressのインストールになるのだろうが、普段VC++プログラムしない人にはなんだか牛刀だし、gemから自動起動するように環境設定するのも面倒かもしれない(やったことはないので実は簡単なのかも)。

バイナリ互換のmingw32版だとRubyInstallerのDevKitを使える。http://rubyinstaller.org/downloads/ から Development Kit をダウンロードして解凍し、下記を実行。実はmswin32環境では確認してないが、ディレクトリ構成は同じはずなので dk.rb install でうまくいくんじゃないかな。

C:\解凍先> dk.rb init
(config.ymlが出来るので内容を確認し必要なら修正)
C:\解凍先> dk.rb install

RubyInstallerを使っている人はレジストリを見て自動的にconfig.ymlが作られるが、そうでない人やmswin32版を使っている人はレジストリエントリがないのでコメントだけのconfig.ymlが作られる。その場合コメントに習って、

--- 
- C:/Ruby

の様に、RubyのインストールディレクトリYAML形式で書いておく。


ビルド環境が出来たら、

C:\HOME> gem install json --platform ruby
Fetching: json-1.5.1.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed json-1.5.1
1 gem installed

ソースからバイナリ generator.so と parser.so が作られる*2


さて、一番簡単なのは 4 だ。Rubyバージョンが1.8.7なので、実際に msvcrt-ruby191.dll 内のモジュールが呼ばれることはない。require の時のエラーダイアログだけ気にしなければ、あとは普通に動く(はず)。

*1:実は未確認のまま書いている部分があります

*2Rubyディレクトリlib\ruby\gems\1.8\gems\json-1.5.1\ext\json\ext\json\ext の下に出来る

トラックバック - http://d.hatena.ne.jp/otn/20110302