首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sqlite3-ruby :无法构建gem本机扩展

sqlite3-ruby :无法构建gem本机扩展
EN

Stack Overflow用户
提问于 2008-09-04 13:40:19
回答 6查看 54.4K关注 0票数 22

更新:查看以下后续问题:Windows上的Gem更新--它坏了吗?

在Windows上,当我这样做时:

代码语言:javascript
复制
gem install sqlite3-ruby

我得到以下错误:

代码语言:javascript
复制
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

同样的事情也发生在上。我似乎还记得这些宝石在< 1.0的宝石上安装得很好,但是现在我使用的是1.2.0,一切都变糟了。

我也尝试过这样做:

代码语言:javascript
复制
gem install sqlite3-ruby --platform Win32

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

有人知道这是怎么回事吗?怎么解决这个问题?

更新:查看以下后续问题:Windows上的Gem更新--它坏了吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-04 14:13:02

正如内森所建议的那样,这似乎与sqlite3ruby和hpricot的最新版本似乎没有Windows版本有关。下面是面对这种情况时应该做的事情(请注意,创业板的名称是自动通配符的,因此您可以只输入sql并获得以sql开头的所有宝石的列表):

代码语言:javascript
复制
$ 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)

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

代码语言:javascript
复制
gem install sqlite3-ruby -v 1.2.3

为了成功地安装杏,我执行了以下操作:

代码语言:javascript
复制
gem install hpricot -v 0.6

令人恼怒的是,做一个gem update试图将宝石更新到他们最新的,坏的Windows版本。当更新例程遇到错误时,它会将您排除在整个进程之外。对于这个问题,这里有一个解决方案。

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

票数 28
EN

Stack Overflow用户

发布于 2009-01-24 20:17:32

我在Ubuntu上也有同样的问题,这解决了我的问题:

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

票数 9
EN

Stack Overflow用户

发布于 2013-07-28 11:04:07

首先来自sqlite.org(http://www.sqlite.org/download.html)

下载->

代码语言:javascript
复制
 Precompiled Binaries: `sqlite-dll-win32-x86-3071700.zip`
代码语言:javascript
复制
 and Source Code: `sqlite-autoconf-3071700.tar.gz`
代码语言:javascript
复制
 then extract as:
代码语言:javascript
复制
-include
    --sqlite3.h
    --sqlite3ext.h
-lib
    --shell.c
    --sqlite3.c
    --sqlite3.def
    --sqlite3.dll

最后安装gem,如:

代码语言:javascript
复制
gem install sqlite3 --platform=ruby -- --with-sqlite3-include=path\to\include  
 --with-sqlite3-lib=path\to\lib --no-ri --no-rdoc

祝好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档