我正在尝试在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的说明,但没有任何工作
答案 0 :(得分:6)
以下是我对该问题的最小修复:
ruby -v => 1.9.2p0
rails -v => 3.0.0
gem -v => 1.3.7
编辑Gemfile:
gem 'sqlite3-ruby', '1.3.1', :require => 'sqlite3'
del Gemfile.lock
bundle install
rake db:migrate
答案 1 :(得分:2)
Ruby 1.9.2,Rails 3.0
rake db:migrate
生成错误消息:
程序入口点rb_str2cstr无法在动态链接库中找到msvcrt-ruby191.dll
解决方法如下:
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'
然后:
这修复了你提到的错误(弹出相同的窗口)。
答案 3 :(得分:0)
后续行动:我一直试图通过卸载和重新安装东西来解决其他问题,并且可能搞砸了。当我遇到这个问题时,没有任何数量的'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”工作。