【问题标题】:Gem::Ext::BuildError: ERROR: Failed to build gem native extension. for SQlite3Gem::Ext::BuildError: 错误: 无法构建 gem 原生扩展。对于 SQLite3
【发布时间】:2021-05-19 00:56:46
【问题描述】:

当我尝试制作新的 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,我使用的是 Windows 10。我尝试运行 gem install sqlite3 命令,就像它提示我的那样,但它仍然失败我做错了什么?

【问题讨论】:

    标签: ruby-on-rails windows sqlite


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这在 Ubuntu 20.04 上也对我有用
    【解决方案2】:

    您可能使用不同的 rails 版本。

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

    gem 'sqlite3', '~> 1.3.6'
    

    修改后运行命令:

    bundle update
    

    【讨论】:

      【解决方案3】:

      您好,我在没有安装 MinGW gem 的情况下尝试安装 SQLite gem 时收到了同样的消息

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

      安装并重试 如果你没有安装 RailsInstaller,只有 Ruby DevKit 它应该可以工作。如果不是请先尝试卸载它,删除剩余文件夹并通过命令gem install rails安装rails

      【讨论】:

      • 我的 Ruby 版本是 Ruby26-x64,MinGW 和 msys2 可执行文件已经包含在 C:\Ruby26-x64\msys64 但如果版本 25 不包含它,请使用 MinGW 安装程序下载它来自mingw.org/wiki/Install_MinGW的经理
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-25
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 2014-06-10
        • 1970-01-01
        相关资源
        最近更新 更多