ruby-on-rails - 无法在 Windows PC 上安装 dm-sqlite-adapter Gem

标签 ruby-on-rails ruby sqlite

我是 Ruby/Sinatra 的新手,我正在尝试安装 DataMapper SQLite 适配器。当我运行 gem install dm-sqlite-adapter 时,我收到以下消息。我之前确实使用命令 gem install sqlite3 安装了 sqlite3。但是,如果我尝试调用 gem install sqlite3 --platform=ruby,则会出现错误。

  c:\Ruby_Dev_Kit>gem install dm-sqlite-adapter
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing dm-sqlite-adapter:
        ERROR: Failed to build gem native extension.

    C:/Ruby200-x64/bin/ruby.exe extconf.rb
checking for sqlite3.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=C:/Ruby200-x64/bin/ruby
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/


Gem files will remain installed in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/do_sq
lite3-0.10.13 for inspection.
Results logged to C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/do_sqlite3-0.10.13/ext
/do_sqlite3/gem_make.out

我尝试了多种不同的方法来解决这个问题。我能够安装 Ruby 开发工具包,因为我能够安装 JSON gem。同样,我从 SQLite.org 下载了 SQLite 源代码。但我无法弄清楚如何正确配置该工具要找到的合并的所有方面。以下是 mkmf.log 的值:

have_header: checking for sqlite3.h... -------------------- no

"x86_64-w64-mingw32-gcc -o conftest.exe -IC:/Ruby200-x64/include/ruby-2.0.0/x64-mingw32 -IC:/Ruby200-x64/include/ruby-2.0.0/ruby/backward -IC:/Ruby200-x64/include/ruby-2.0.0 -I. -I/usr/local/include -I/opt/local/include -I/usr/include -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wall  -DHAVE_NO_DATETIME_NEWBANG conftest.c  -L. -LC:/Ruby200-x64/lib -L/usr/local/ -L/opt/local/ -L/usr/ -L.      -lx64-msvcrt-ruby200  -lshell32 -lws2_32 -limagehlp -lshlwapi  "
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: int main(int argc, char **argv)
6: {
7:   return 0;
8: }
/* end */

"x86_64-w64-mingw32-gcc -E -IC:/Ruby200-x64/include/ruby-2.0.0/x64-mingw32 -IC:/Ruby200-x64/include/ruby-2.0.0/ruby/backward -IC:/Ruby200-x64/include/ruby-2.0.0 -I. -I/usr/local/include -I/opt/local/include -I/usr/include -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D_FILE_OFFSET_BITS=64   -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -Wall  -DHAVE_NO_DATETIME_NEWBANG  conftest.c -o conftest.i"
conftest.c:5:21: fatal error: sqlite3.h: No such file or directory
compilation terminated.
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: #include <winsock2.h>
4: #include <windows.h>
5: #include <sqlite3.h>
/* end */

--------------------

我尝试了许多不同的方法来让它工作,我意识到这可能是一个愚蠢的问题。但是,在这一点上,我没有主意。非常感谢任何帮助。

系统信息:

  • Windows 7 64 位
  • ruby 版本:2.0.0 p247 x64
  • 安装程序 - 标准 Ruby Exe 安装程序

最佳答案

我最终能够解决这个问题。对于那些在未来遇到这个问题的人,Bosko Ivanisevic 写了一篇很好的指南来解决这个问题。

参见此处:http://rubyonwindowsguides.github.io/book/ch02-05.html

里面有很多细节需要注意,所以一定要一步一步地通读,并严格按照每一项进行操作。很好的解释。

关于ruby-on-rails - 无法在 Windows PC 上安装 dm-sqlite-adapter Gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18810467/

相关文章:

ruby-on-rails - draper - 帮助理解委托(delegate) "to"和 "prefix"

iPhone 在运行时创建 SQLite 数据库?

ruby-on-rails - rails 回形针 - 错误处理缩略图

ruby-on-rails - 助手 “fields_for”无法正常工作

ruby-on-rails - Rails 不保存模型字段

sqlite - SQLite 是否支持存储过程?

android - SQLiteOpenHelper,什么时候调用onCreate

ruby-on-rails - Rails 4 has_many 已弃用的带有 order 的警告

ruby-on-rails - 在没有 Gemfile 的 Dockerfile 中安装 gems

ruby-on-rails - 在 Rails 应用程序中使用 gem