rikuto_hr
@rikuto_hr (yama rikuto)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

sqlite3 エラー

解決したいこと

railsの環境構築でrails -v 5.2.5を入れてbundle isntall したところエラーが
発生しました。解決方法を教えてください

発生している問題・エラー

Fetching sqlite3 1.3.6
Installing sqlite3 1.3.6 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/Users/yama/vendor/bundle/ruby/2.6.0/gems/sqlite3-1.3.6/ext/sqlite3
/Users/yama/.rbenv/versions/2.6.4/bin/ruby -I
/Users/yama/.rbenv/versions/2.6.4/lib/ruby/2.6.0 -r
./siteconf20210505-44501-kal8ow.rb extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... no
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... yes
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
checking for sqlite3_open_v2()... yes
checking for sqlite3_prepare_v2()... yes
checking for sqlite3_int64 in sqlite3.h... yes
checking for sqlite3_uint64 in sqlite3.h... yes
creating Makefile

current directory:
/Users/yama/vendor/bundle/ruby/2.6.0/gems/sqlite3-1.3.6/ext/sqlite3
make "DESTDIR=" clean

current directory:
/Users/yama/vendor/bundle/ruby/2.6.0/gems/sqlite3-1.3.6/ext/sqlite3
make "DESTDIR="
compiling backup.c
compiling database.c
database.c:205:3: warning: 'sqlite3_trace' is deprecated: first deprecated
in macOS 10.12 [-Wdeprecated-declarations]
  sqlite3_trace(ctx->db, NIL_P(block) ? NULL : tracefunc, (void *)self);
  ^~~~~~~~~~~~~
  sqlite3_trace_v2
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sqlite3.h:3122:36:
note: 'sqlite3_trace' has been explicitly marked deprecated here
SQLITE_API SQLITE_DEPRECATED void *sqlite3_trace(
                                   ^
1 warning generated.
compiling exception.c
compiling sqlite3.c
compiling statement.c
statement.c:262:11: error: implicit declaration of function 'RBIGNUM' is
invalid in C99 [-Werror,-Wimplicit-function-declaration]
      if (RBIGNUM_LEN(value) * SIZEOF_BDIGITS <= 8) {
          ^
./sqlite3_ruby.h:16:24: note: expanded from macro 'RBIGNUM_LEN'
#define RBIGNUM_LEN(x) RBIGNUM(x)->len
                       ^
statement.c:262:11: error: member reference type 'int' is not a pointer
      if (RBIGNUM_LEN(value) * SIZEOF_BDIGITS <= 8) {
          ^~~~~~~~~~~~~~~~~~
./sqlite3_ruby.h:16:36: note: expanded from macro 'RBIGNUM_LEN'
#define RBIGNUM_LEN(x) RBIGNUM(x)->len
                       ~~~~~~~~~~  ^
statement.c:262:32: error: use of undeclared identifier 'SIZEOF_BDIGITS'
      if (RBIGNUM_LEN(value) * SIZEOF_BDIGITS <= 8) {
                               ^
3 errors generated.
make: *** [statement.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/Users/yama/vendor/bundle/ruby/2.6.0/gems/sqlite3-1.3.6
for inspection.
Results logged to
/Users/yama/vendor/bundle/ruby/2.6.0/extensions/-darwin-20/2.6.0/sqlite3-1.3.6/gem_make.out

An error occurred while installing sqlite3 (1.3.6), and Bundler
cannot continue.
Make sure that `gem install sqlite3 -v '1.3.6' --source
'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  sqlite3

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

bundle install

自分で試したこと

gemfileにsqlite3のバージョンの指定がなかったので1.3.6と書いてbundle installしても結果は変わりませんでした。

試しにバージョンも変えてやってみたのですが、結果は変わりませんでした。

そしてエラーぽい"DESTDIR=" cleanと書いてありDESTDIRを消せばいいのか?と思い探したのですDESTDIRが見つかりませんでした。

正直全くわかりません。 ruby 2.6.4 です 

0

1Answer

sqlite3 gem のバージョンが古そうです。1.3.13か1.4.2にアップデートしてみてください。できなければ bundle config build.sqlite3 -Wno-implicit-function-declaration を実行してビルドエラーを無視するようにしてから bundle install するといけるかもしれません。

1Like

Comments

  1. @rikuto_hr

    Questioner

    アップデートしたらできました! ありがとうございます

Your answer might help someone💌