0

更新:此问题已使用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

红宝石:红宝石1.8.6(2008-08-11补丁级别287)[i386-mswin32]

红宝石:1.3.2

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

有什么线索吗?

谢谢。

4

2 回答 2

0

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
于 2012-04-19T14:34:00.227 回答
0

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

于 2012-05-30T08:53:16.537 回答