ruby-on-rails - 在我的 Windows 上执行 cmd“rails new test_install”时出现此错误
问题描述
Gem::Ext::BuildError: 错误: 无法构建 gem 原生扩展。
当前目录: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。 /siteconf20190220-5856-12t9mtl.rb extconf.rb 检查 sqlite3.h... 没有 sqlite3.h 丢失。首先从http://www.sqlite.org/安装 SQLite3 。 * extconf.rb 失败 * 由于某种原因无法创建 Makefile,可能缺少必要的库和/或头文件。检查 mkmf.log 文件以获取更多详细信息。您可能需要配置选项。
提供的配置选项: --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
要查看此扩展无法编译的原因,请查看 mkmf.log 可以
可以在这里找到:
C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sql ite3-1.4.0/mkmf.log
extconf 失败,退出代码 1
Gem 文件将继续安装在 C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sqlite3-1.4.0 以供检查。结果记录到 C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/sql ite3-1.4.0/gem_make.out
安装 sqlite3 (1.4.0) 时出错,Bundler 无法继续。
gem install sqlite3 -v '1.4.0'
在捆绑之前确保成功。
在 Gemfile 中:sqlite3
解决方案
我遇到了同样的问题并尝试了一个多星期的很多解决方案,唯一对我有用的是卸载 RailsInstaller 只安装 Ruby DevKit(确保 RailsInstaller 安装的所有文件夹都消失了,否则你会看到一条消息“C :/RailsInstaller/Ruby2.3.3/bin" 尝试使用gem命令时找不到)通过命令行安装railsC:/Sites > gem install rails
并安装MinGW
C:\Sites>ridk exec pacman -S mingw-w64-x86_64-dlfcn
从https://rubygems.org/下载 SQLite3 gem ,将其保存在本地并从文件中安装
C:\Sites>gem install --local C:\sqlite3-1.4.0.gem
好消息是它适用于我之后创建的所有项目。
推荐阅读
- python - python中是否有一个函数可以确定图中指定点的颜色?
- django - 'WSGIRequest' 对象的 AttributeError 没有属性 'Post'
- jenkins - Jenkins 使用 Intellij 共享库函数引用
- python - 是否可以使用 pynput 按住鼠标按钮一段时间?
- vb.net - 在 VB.Net 2019 中声明变量时出错
- c - 使用 GCC 构建的变量参数的 EDK2 Shell 应用程序在运行时会导致页面错误
- tableau-api - Tableau:如何复制唯一标识符的行值?
- wcf - .NET Core 无法通过 HTTP 客户端发送 SOAP 请求
- excel - 选择大小写以从列中读取值
- list - 列表中的每个 blitted 图像都会消失而不是保留在屏幕上。我想用图像填满整个屏幕,因为它在随机位置闪烁