更新:此问题已使用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
没有任何问题)
有任何线索吗?
感谢。
答案 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+红宝石。