使用Rails,每当我尝试执行“bundle install”或sudo gem install someGem之类的操作时,我都会遇到关于sqlite3的相同错误。我试过了两个
sudo port install sqlite3 +universal
和
sudo port install rb-sqlite3 +universal
但两者都没有帮助。这是错误:
cmu-435163:photoGlass dpieri$ sudo gem install taps
Password:
Building native extensions.
This could take a while...
ERROR: Error installing taps:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... no
sqlite3 is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite3-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** 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
....
....
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out
更新: 我找到了mkmf.log文件,这里是它的内容:
find_header: checking for sqlite3.h...
-------------------- yes
"gcc -E -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0
-I. -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -o conftest.i" checked program was: /* begin */ 1: #include <sqlite3.h> /* end */
--------------------
find_library: checking for sqlite3_libversion_number() in
-lsqlite3... -------------------- no
"gcc -o conftest -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0
-I. -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib
-L/usr/local/lib -L/opt/local/lib -L/sw/local/lib -L/usr/lib -L. -lruby -lsqlite3 -lpthread -ldl " conftest.c: In function ‘t’: conftest.c:3: error: ‘sqlite3_libversion_number’ undeclared (first use in this function) conftest.c:3: error: (Each undeclared identifier is reported only once conftest.c:3: error: for each function it appears in.) checked program was: /* begin */ 1: /*top*/ 2: int main() { return 0; } 3: int t() { void ((*volatile p)()); p = (void ((*)()))sqlite3_libversion_number; return 0; } /* end */
"gcc -o conftest -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0
-I. -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib
-L/usr/local/lib -L/opt/local/lib -L/sw/local/lib -L/usr/lib -L. -lruby -lsqlite3 -lpthread -ldl " ld: warning: directory '/sw/local/lib' following -L not found ld: warning: in /usr/local/lib/libsqlite3.dylib, missing required architecture x86_64 in file Undefined symbols: "_sqlite3_libversion_number", referenced from:
_t in ccSWkK1V.o ld: symbol(s) not found collect2: ld returned 1 exit status checked program was: /* begin
*/ 1: /*top*/ 2: int main() { return 0; } 3: int t() { sqlite3_libversion_number(); return 0; } /* end */
--------------------
答案 0 :(得分:1)
想出来:
&#34;哪个-a ruby&#34;和&#34;其中-a sqlite3的&#34;和&#34;其中-a gem&#34;至 意识到我有两三个版本 每个
使用port卸载已安装的Ruby,Sqlite3和rubygems的所有版本
手动卸载不同的sqlite3 路径为Ruby和Rubygems
一旦Ruby,Rubygems和Sqlite3都在同一个浴室 (usr / bin)一切正常。