Ruby: проблема с Hpricot — rb_hash_lookup не может быть найден в msvcrt-ruby18.dll

Обновление: эта проблема устранена с помощью RubyInstaller и сопутствующего DevKit. Пожалуйста, смотрите ответ ниже.


На новой WinXP мы пытаемся настроить RoR. У нас возникла проблема с запуском приложения rails. При отладке Hpricot gem был найден виновник. Та же проблема возникает, если мы используем Hpricot в простой программе Ruby.

Окно сообщения появляется со следующим сообщением, когда мы запускаем любую программу Ruby, использующую Hpricot:

The procedure entry point rb_hash_lookup could not be located in the dynamic link library msvcrt-ruby18.dll.

А вот трассировка стека:

C:/Ruby/lib/ruby/gems/1.8/gems/hpricot-0.8.6-x86-mswin32/lib/hpricot_scan/1.8/hpricot_scan.so: 127: The specified procedure could not be found.   
- C:/Ruby/lib/ruby/gems/1.8/gems/hpricot-0.8.6-x86-mswin32/lib/hpricot_scan/1.8/hpricot_scan.so (LoadError)
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from C:/Ruby/lib/ruby/gems/1.8/gems/hpricot-0.8.6-x86-mswin32/lib/hpricot_scan.rb:1
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from C:/Ruby/lib/ruby/gems/1.8/gems/hpricot-0.8.6-x86-mswin32/lib/hpricot.rb:20
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from hp_test.rb:3

Ruby: ruby ​​1.8.6 (уровень исправления 287 11 августа 2008 г.) [i386-mswin32]

Рубиновые самоцветы: 1.3.2

Hpricot: 0.8.6 (устанавливалась using gem install hpricot без проблем)

Любая подсказка?

Спасибо.


person Saim    schedule 19.04.2012    source источник
comment
Hpricot заброшен. Вместо этого вам следует подумать об использовании нокогири.   -  person pguardiario    schedule 19.04.2012
comment
Это производство на год, так что переход на нокогири пока не вариант. Может быть когда-нибудь позже. Спасибо за ваше предложение.   -  person Saim    schedule 19.04.2012


Ответы (2)


Ruby DevKit был здесь спасителем. Благодаря Чарласу.

Что мы сделали:

1. Uninstalled the ruby
2. Installed it again using RubyInstaller
3. Installed the DevKit
4. Install the hpricot gem
5. That's it
person Saim    schedule 19.04.2012

Вам нужен другой hpricot: 0.6.164 нормально, а 0.8.6 нет. Последнее может быть предназначено для рубина 1.8.7+.

person minger    schedule 30.05.2012