Ruby on rails Can';t安装sqlite
我用mac Gem版本:2.4.5.1 Ruby版本:Ruby 2.2.3p173(2015-08-18修订版51636)[x86_64-darwin15] 档案: 我花了大约3个小时寻找解决方案,但运气不佳 我读了迈克尔·哈特尔的《RubyonRails教程》,第46页 第一个错误导致另一个错误,导致另一个错误 它以以下命令开始:Ruby on rails Can';t安装sqlite,ruby-on-rails,ruby,ruby-on-rails-3,sqlite,Ruby On Rails,Ruby,Ruby On Rails 3,Sqlite,我用mac Gem版本:2.4.5.1 Ruby版本:Ruby 2.2.3p173(2015-08-18修订版51636)[x86_64-darwin15] 档案: 我花了大约3个小时寻找解决方案,但运气不佳 我读了迈克尔·哈特尔的《RubyonRails教程》,第46页 第一个错误导致另一个错误,导致另一个错误 它以以下命令开始: bundle install --without production 这将导致此错误: Fetching gem metadata from https
bundle install --without production
这将导致此错误:
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 11.2.2
Using i18n 0.7.0
Using multi_json 1.12.1
Using builder 3.0.4 (was 3.2.2)
Using erubis 2.7.0
Using journey 1.0.4
Using rack 1.4.7 (was 2.0.1)
Using hike 1.2.3
Using tilt 1.4.1 (was 2.0.5)
Using mime-types 1.25.1 (was 3.1)
Using polyglot 0.3.5
Using arel 3.0.3 (was 7.1.2)
Using tzinfo 0.3.51 (was 1.2.2)
Using bundler 1.13.1
Using coffee-script-source 1.10.0
Using execjs 2.7.0
Using json 1.8.3
Using thor 0.14.6 (was 0.19.1)
Using sass 3.4.22
Installing sqlite3 1.3.5 (was 1.3.11) with native extensions
Using activesupport 3.2.3 (was 5.0.0.1)
Using rack-cache 1.6.1
Using rack-test 0.6.3
Using rack-ssl 1.3.4
Using sprockets 2.1.4 (was 3.7.0)
Using treetop 1.4.15
Using coffee-script 2.4.1
Using uglifier 1.2.3 (was 3.0.2)
Using rdoc 3.12.2
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/Money/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20160917-4100-9i5b1f.rb
extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling backup.c
compiling database.c
compiling exception.c
compiling sqlite3.c
compiling statement.c
statement.c:258:11: warning: implicit declaration of function 'RBIGNUM' is invalid in
C99 [-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:258: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:258:32: error: use of undeclared identifier 'SIZEOF_BDIGITS'
if (RBIGNUM_LEN(value) * SIZEOF_BDIGITS <= 8) {
^
1 warning and 2 errors generated.
make: *** [statement.o] Error 1
make failed, exit code 2
Gem files will remain installed in
/Users/Money/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.5 for
inspection.
Results logged to
/Users/Money/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/sqlite3-1.3.5/gem_make.out
An error occurred while installing sqlite3 (1.3.5), and Bundler cannot
continue.
Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling.
得到这个错误,我不知道该怎么办:
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
/Users/Money/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20160917-4314-20lcl4.rb extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling backup.c
compiling database.c
compiling exception.c
compiling sqlite3.c
compiling statement.c
statement.c:258:11: warning: implicit declaration of function 'RBIGNUM' is invalid in C99 [-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:258: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:258:32: error: use of undeclared identifier 'SIZEOF_BDIGITS'
if (RBIGNUM_LEN(value) * SIZEOF_BDIGITS <= 8) {
^
1 warning and 2 errors generated.
make: *** [statement.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/Money/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.5 for inspection.
Results logged to /Users/Money/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/sqlite3-1.3.5/gem_make.out
Jonass-MBP:demo_app Money$
构建本机扩展。这可能需要一段时间。。。
错误:安装sqlite3时出错:
错误:无法生成gem本机扩展。
/Users/Money/.rbenv/versions/2.2.3/bin/ruby-r./siteconf20160917-4314-20lcl4.rbextconf.rb
正在检查sqlite3.h。。。对
正在-lsqlite3中检查sqlite3\u libversion\u number()。。。对
正在检查rb_进程()。。。对
正在检查sqlite3_initialize()。。。对
正在检查sqlite3\u backup\u init()。。。对
正在检查sqlite3列数据库名称()。。。不
正在检查sqlite3\u启用\u加载\u扩展()。。。不
正在检查sqlite3\u加载\u扩展()。。。不
创建Makefile
使“DESTDIR=”干净
使“DESTDIR=”
编译backup.c
编译database.c
编译exception.c
编译sqlite3.c
汇编报表.c
语句c:258:11:警告:函数“RBIGNUM”的隐式声明在C99[-Wimplicit函数声明]中无效
if(RBIGNUM长度(值)*数字长度大小
^
语句.c:258:11:错误:成员引用类型“int”不是指针
if(RBIGNUM长度(值)*数字长度大小
~~~~~~~~~~ ^
语句.c:258:32:错误:使用未声明的标识符“SIZEOF_BDIGITS”
如果(RBIGNUM_LEN(值)*数字大小try
我在这里看到的
http://stackoverflow.com/questions/34151296/cannot-install-sqlite3-gem
系统中是否安装了SQLite3
如果您正在使用MacPorts:
sudo端口安装sqlite3
或Brew:
brew安装sqlite3
请按如下方式尝试安装:
gem安装sqlite3-v'1.3.5'--srcdir=/usr/local/mysql/include
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
/Users/Money/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20160917-4314-20lcl4.rb extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling backup.c
compiling database.c
compiling exception.c
compiling sqlite3.c
compiling statement.c
statement.c:258:11: warning: implicit declaration of function 'RBIGNUM' is invalid in C99 [-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:258: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:258:32: error: use of undeclared identifier 'SIZEOF_BDIGITS'
if (RBIGNUM_LEN(value) * SIZEOF_BDIGITS <= 8) {
^
1 warning and 2 errors generated.
make: *** [statement.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/Money/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.5 for inspection.
Results logged to /Users/Money/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/sqlite3-1.3.5/gem_make.out
Jonass-MBP:demo_app Money$
bundle update sqlite3
http://stackoverflow.com/questions/34151296/cannot-install-sqlite3-gem