Gem::Ext::BuildError: ERROR: Failed to build gem native extension. for SQlite3

流过昼夜 提交于 2021-01-29 08:49:25

问题


I keep getting the below error in rails on windows when I try to make a new rails app? It fails when it gets to installing 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.

I have sqlite3 installed on my machine and I am using windows 10. I have attempted ot run the gem install sqlite3 command like it prompts me to but it still fails what am I doing wrong?


回答1:


Hi I got the same message when tried to install SQLite gem without MinGW gem installed already

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

Install it and try again If you DON'T have installed RailsInstaller only Ruby DevKit it should work. If not please try uninstalling it first, removing the remaining folders and installing rails by command gem install rails




回答2:


Probably, you use different rails version.

Solution is change version of sqlite to 1.3.6:

gem 'sqlite3', '~> 1.3.6'

After this change run command:

bundle update



回答3:


Try uninstalling all the versions of the sqlite3 gem from the system and reinstalling only version 1.4.0



来源:https://stackoverflow.com/questions/54792176/gemextbuilderror-error-failed-to-build-gem-native-extension-for-sqlite3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!