Ruby:Hpricot问题 - 无法找到msvcrt-ruby18.dll中的rb_hash_lookup

时间:2012-04-19 12:28:17

标签: ruby hpricot msvcrt

更新:此问题已使用RubyInstaller相关 DevKit修复。请参阅下面的答案。


在新的WinXP上,我们正在尝试设置RoR。我们在运行rails应用程序时遇到了一些问题。虽然调试Hpricot gem被发现是罪魁祸首。如果我们在简单的Ruby程序中使用Hpricot,就会出现同样的问题。

当我们运行使用Hpricot的任何Ruby程序时,会出现一个消息框,其中包含以下消息:

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(2008-08-11 patchlevel 287)[i386-mswin32]

Ruby Gems:1.3.2

Hpricot:0.8.6(已安装using gem install hpricot没有任何问题)

有任何线索吗?

感谢。

2 个答案:

答案 0 :(得分:0)

Ruby DevKit是这里的救援者。感谢Charlas

我们做的是:

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

答案 1 :(得分:0)

你需要另一个hpricot:0.6.164可以,而0.8.6则不行。 后者可能适用于1.8.7+红宝石。