当前位置:  开发笔记 > 后端 > 正文

sqlite3-ruby gem:无法构建gem原生扩展

如何解决《sqlite3-rubygem:无法构建gem原生扩展》经验,为你挑选了2个好方法。

更新:查看此后续问题:Windows上的Gem更新 - 是否已损坏?


在Windows上,当我这样做时:

gem install sqlite3-ruby

我收到以下错误:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
        ERROR: Failed to build gem native extension.

c:/ruby/bin/ruby.exe extconf.rb install sqlite3-ruby --platform Win32
checking for fdatasync() in rt.lib... no
checking for sqlite3.h... no

nmake
'nmake' is not recognized as an internal or external command,
operable program or batch file.


Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to c:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out

同样的事情发生在hpricot gem上.我似乎记得这些宝石在<1.0宝石上安装得很好,但现在我在1.2.0上,事情变得棘手了.

我也试过这个:

gem install sqlite3-ruby --platform Win32

不用说,这也不起作用(同样的错误)

有谁知道这里发生了什么以及如何解决这个问题?


更新:查看此后续问题:Windows上的Gem更新 - 是否已损坏?



1> Charles Rope..:

正如Nathan建议的那样,这似乎与sqlite3-ruby和hpricot gems的最新版本似乎没有Windows版本的事实有关.这是面对这种情况时要做的事情(注意,gem的名称是自动通配符,所以你可以只键入sql并获取以sql开头的所有gem的列表):

$ gem list --remote --all sqlite

*** REMOTE GEMS ***

sqlite (2.0.1, 2.0.0, 1.3.1, 1.3.0, 1.2.9.1, 1.2.0, 1.1.3, 1.1.2, 1.1.1, 1.1)
sqlite-ruby (2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2)
sqlite3-ruby (1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0.0, 0.9.0, 0.6.0, 0.5.0)

然后,您可以选择要安装的版本:

gem install sqlite3-ruby -v 1.2.3

为了成功安装hpricot,我这样做了:

gem install hpricot -v 0.6

令人讨厌的是,gem update尝试将宝石更新为最新的,破碎的Windows版本.当更新例程遇到错误时,它会使您退出整个过程.有一个(哈克)解决了这个问题在这里.

那么,这个问题是宝石中的一个错误吗?宝石是不是会自动检测平台并安装最新的兼容版本?



2> Mercurious..:

我在Ubuntu上遇到了同样的问题,这解决了我的问题:

http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00339.html

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有