当我调用rails来构建新应用程序的框架(即rails 5.1.3 new flix)时,出现错误,即命令输出的最后一部分是
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/RailsInstaller/Ruby2.3.3/bin/ruby.exe -r ./siteconf20190222-12524-hspyoq.rb
extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
*** 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:/RailsInstaller/Ruby2.3.3/bin/$(RUBY_BASE_NAME)
--with-sqlcipher
--without-sqlcipher
--with-sqlite3-config
--without-sqlite3-config
--with-pkg-config
--without-pkg-config
--with-sqlcipher
--without-sqlcipher
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
To see why this extension failed to compile, please check the mkmf.log which can
be found here:
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0 for
inspection.
Results logged to
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/gem_make.out
An error occurred while installing sqlite3 (1.4.0), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.4.0'` succeeds before bundling.
In Gemfile:
sqlite3
运行gem install sqlite3 -v '1.4.0'
时,出现以下错误消息
C:\Users\acer>gem install sqlite3 -v '1.4.0'
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
current directory: C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/RailsInstaller/Ruby2.3.3/bin/ruby.exe -r ./siteconf20190222-11816-8sfvgr.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
*** 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:/RailsInstaller/Ruby2.3.3/bin/$(RUBY_BASE_NAME)
--with-sqlcipher
--without-sqlcipher
--with-sqlite3-config
--without-sqlite3-config
--with-pkg-config
--without-pkg-config
--with-sqlcipher
--without-sqlcipher
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/mkmf.log
extconf failed, exit code 1
Gem files will remain installed in C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0 for inspection.
Results logged to C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sqlite3-1.4.0/gem_make.out
如果有人在Windows 10中安装了sqlite,请指导我。
非常感谢。
答案 0 :(得分:1)
如错误消息中所述,您需要首先在计算机上安装SQLite 3(http://www.sqlite.org/)。红宝石gem sqlite3
仅为您提供了一种使用Ruby的SQLite 3的方法,但是仍然需要将其安装在您的系统上。
答案 1 :(得分:1)
今天(2019年4月10日)我刚刚将红宝石安装在轨道上。我花了时间写这篇文章
当我尝试在Rails应用程序的工作目录中遇到相同的问题。
这是我遵循的非常有效的步骤,没有任何错误。
1。)从以下位置下载Ruby安装程序 link 在这里,我下载了 Ruby + Devkit 2.6.1-1(x86),因为它使用的是32位Windows OS。
运行安装文件
2。)通过评估其红宝石版本来检查是否安装了红宝石
在命令提示符下键入
ruby -v
您将看到输出例如。红宝石2.6.1p33
3安装Rails
在命令提示符下运行
gem install rails
4。)检查安装的滑轨版本。 在命令提示符下运行
rails -v
您将看到输出例如。导轨5.2.3
5。)创建应用程序目录,例如rails项目。 Cd C:>到任何目录位置并键入
rails new myRailsApp
如果一切正常,这将在c:/目录中创建 myRailsApp 。
在您的情况下,它现在将起作用,这就是为什么它显示上面的错误。
注意:
但是请记住,尽管您上面发布的错误是由sqlite3引起的,但您的应用程序工作目录**(myRailsApp)**是已创建的。
这时打开您的应用目录,并在命令propmt处键入以下代码以更新一些缺少的gem文件
C:\myRailsApp>ridk exec pacman -S mingw-w64-x86_64-dlfcn
按Enter,它将被安装。
现在在您的根应用程序目录中打开一个名为 GemFile 的文件。 C:\ myRailsApp
请更改此行
gem 'sqlite3'
在下面保存并保存
gem 'sqlite3', git: "https://github.com/larskanis/sqlite3-ruby", branch: "add-gemspec"
此处的解决方案基于 Larskanis方法
然后在
处运行捆绑软件安装C:\myRailsApp>bundle install
,您的应用程序将编译,没有任何错误。
测试红宝石是否正在运行 在项目目录中使用命令 rails server 启动服务器
C:\myRailsApp>rails server
或者您也可以通过导航到bin目录来启动它
C:\myRailsApp\bin>rails server
在 http://localhost:3000 和viola中打开浏览器!
答案 2 :(得分:0)
我用以下命令解决了它:
gem install sqlite3 ver'1.4.0'-源'https://rubygems.org/'