Ruby on rails msvcrt-ruby191.dll在XP上出现问题

时间:2010-09-27 16:35:07

标签: ruby-on-rails ruby sqlite

我正在尝试在XP Profesoinal上运行Rails3并遵循此处的教程http://railstutorial.org并且一直收到以下错误,甚至尝试返回静态页面。消息是程序入口点rb_str2cstr无法位于动态链接库msvcrt-ruby191.dll

此外,该页面给出了运行时错误“找不到sqlite3的驱动程序”,即使我还没有创建任何模型。 sqlite3.exe,sqlite3.dll和sqlite3.def都在bin文件夹中,我运行了Gem install sqlite3-ruby。

我也尝试过gem install mongrel --pre和给出http://www.ruby-forum.com/topic/202770#882858的说明,但没有任何工作

error message

6 个答案:

答案 0 :(得分:6)

以下是我对该问题的最小修复:

ruby -v => 1.9.2p0 
rails -v => 3.0.0 
gem -v => 1.3.7
  1. http://sqlite.org/download.html
  2. 下载sqlitedll-3_7_3.zip
  3. 将sqlite3.def和sqlite3.dll复制到ruby / bin
  4. 编辑Gemfile:

    gem 'sqlite3-ruby', '1.3.1', :require => 'sqlite3'

  5. del Gemfile.lock

  6. bundle install
  7. rake db:migrate

答案 1 :(得分:2)

Ruby 1.9.2,Rails 3.0

rake db:migrate生成错误消息:

  

程序入口点rb_str2cstr无法在动态链接库中找到msvcrt-ruby191.dll

解决方法如下:

  1. 删除gemlock。
  2. 将SQLite版本更改为1.3.1。
  3. 运行:bundle install。
  4. rake db:migrate现在可以生成正确的结果。

答案 2 :(得分:2)

我的版本:

ruby -v => 1.9.2p0
rails -v => 3.0.0
gem -v => 1.3.7

的Gemfile:

gem 'sqlite3-ruby', :require => 'sqlite3'

然后:

  1. 删除了Gemfile.lock
  2. rake db:migrate
  3. 这修复了你提到的错误(弹出相同的窗口)。

答案 3 :(得分:0)

Metoo。我试图在Vista-64上运行rake db:migrate。 (同一本书)。

  
    

后续行动:我一直试图通过卸载和重新安装东西来解决其他问题,并且可能搞砸了。当我遇到这个问题时,没有任何数量的'gem uninstall'或'bundle install'会解决它。直到我删除了我的Gemfile.lock并执行了“Bundle install”。然后我的'rake db:migrate'运行没有错误。由于所有输出都是'使用xxx',所以它看起来不像bundle安装任何东西,但我会接受它。

  

答案 4 :(得分:0)

对我而言,这意味着“”你需要以某种方式更新你的sqlite3-ruby gem版本“http://betterlogic.com/roger/?p=3027

答案 5 :(得分:0)

我遇到了与XP Pro和Rails教程相同的问题。我安装了SQLite版本1.2.5,它与本教程第2章中的内容相符。

但是当我看到roger关于使用版本1.3.1的评论时,我安装了该版本(使用“gem install sqlite3-ruby -v 1.3.1”)。但它给出了关于将SQLite版本3.6.23.1与此gem一起使用的消息,以及相关网站。所以我下载了它并替换了C:\ Ruby192 \ bin目录中的sqlite3 .exe,.dll和.def文件。

然后我查看了gemfile,发现SQLite版本是1.2.5(根据教程)。所以我将其更改为1.3.1,删除了gemfile.lock,再次运行“bundle install”,之后“rake db:migrate”工作。