Gem :: Ext :: BuildError:错误:无法构建gem本机扩展。对于SQlite3

时间:2019-02-20 17:30:38

标签: ruby-on-rails windows sqlite

当我尝试制作一个新的Rails应用程序时,我在Windows的Rails中不断收到以下错误?安装sqlite3失败。

current directory:
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.4.0/ext/sqlite3
C:/Ruby25-x64/bin/ruby.exe -r ./siteconf20190220-14164-174xy0j.rb extconf.rb
checking for sqlite3.h... yes
checking for pthread_create() in -lpthread... yes
checking for -ldl... no
checking for dlopen()... no
missing function dlopen
*** 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:/Ruby25-x64/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
        --with-pthreadlib
        --without-pthreadlib
        --with-dllib
        --without-dllib

To see why this extension failed to compile, please check the mkmf.log which can
be found here:

C:/Ruby25-x64/lib/ruby/gems/2.5.0/extensions/x64-mingw32/2.5.0/sqlite3-1.4.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.4.0 for inspection.
Results logged to
C:/Ruby25-x64/lib/ruby/gems/2.5.0/extensions/x64-mingw32/2.5.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' --source 'https://rubygems.org/'`
succeeds before bundling.

我在计算机上安装了sqlite3,并且我使用的是Windows10。我试图按提示运行的方法运行gem install sqlite3命令,但仍然失败,我该怎么做?

4 个答案:

答案 0 :(得分:1)

可能您使用了不同的Rails版本。

解决方案是将sqlite的版本更改为1.3.6:

gem 'sqlite3', '~> 1.3.6'

此更改后运行命令:

bundle update

答案 1 :(得分:0)

尝试从系统中卸载sqlite3 gem的所有版本,然后仅重新安装版本1.4.0

答案 2 :(得分:0)

嗨,当我尝试安装尚未安装MinGW gem的SQLite gem时,我收到了相同的消息

C:\Sites>ridk exec pacman -S mingw-w64-x86_64-dlfcn

安装并重试 如果您尚未安装RailsInstaller,而仅安装了Ruby DevKit,它将可以正常工作。如果不是,请先尝试将其卸载,然后删除其余文件夹并通过命令gem install rails

安装rails

答案 3 :(得分:0)

试试这个 $ sudo apt-get install libsqlite3-dev 然后, $ bundle install