2012-04-19 49 views
0

更新:此问题已使用相关DevKitRubyInstaller固定。请参阅下面的答案。红宝石:角度来说,Hpricot问题 - rb_hash_lookup不能位于MSVCRT-ruby18.dll


在新的WinXP,我们正在努力建立的回报率。我们在运行rails应用程序时遇到了一些问题。调试Hpricot宝石被发现是罪魁祸首。如果我们在一个简单的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 

红宝石:红宝石1.8.6 (2008-08-11 PATCHLEVEL 287)[I386-mswin32]

红宝石宝石:1.3.2

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

任何线索?

谢谢。

+0

Hpricot是弃用软件。你应该考虑使用nokogiri。 – pguardiario 2012-04-19 13:59:22

+0

这是一年的生产,所以搬到nokogiri现在不是一个选项。可能稍晚一些。感谢您的建议。 – Saim 2012-04-19 14:30:03

回答

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 
0

您需要另一个角度来说,Hpricot:0.6.164是确定的,而0.8.6则不是。 后者可能意味着1.8.7+的红宝石。