Xcode 使用自制安装的gcc编译器时发生rails 4 gem安装错误
我正在为rails 4安装gem sqlite3,但出现编译错误。这是一款全新的MacBookPro,安装了Mavericks操作系统。我已经安装了XCode,但也使用自制软件(使用说明)安装了GCC4.9。在我尝试安装gem sqlite3时出现编译错误之前,一切都很顺利:Xcode 使用自制安装的gcc编译器时发生rails 4 gem安装错误,xcode,macos,gcc,gem,ruby-on-rails-4,Xcode,Macos,Gcc,Gem,Ruby On Rails 4,我正在为rails 4安装gem sqlite3,但出现编译错误。这是一款全新的MacBookPro,安装了Mavericks操作系统。我已经安装了XCode,但也使用自制软件(使用说明)安装了GCC4.9。在我尝试安装gem sqlite3时出现编译错误之前,一切都很顺利: app_folder git:(mybranch) gem install sqlite3 -v '1.3.8' Building native extensions. This could take a
app_folder git:(mybranch) gem install sqlite3 -v '1.3.8'
Building native extensions. This could take a while...
ERROR: Error installing sqlite3:
ERROR: Failed to build gem native extension.
/Users/myname/.rvm/rubies/ruby-2.0.0-p353/bin/ruby 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
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
make "DESTDIR="
compiling backup.c
gcc-4.9: error: unrecognized command line option '-Wshorten-64-to-32'
make: *** [backup.o] Error 1
在对这个问题做了一些研究之后,我发现除了这个命令行选项是特定于mac的,并且自制的gcc编译器没有它之外,几乎没有其他信息!有没有办法让我切换回原生mac gcc编译器?我该如何解决这个问题?为什么在任何地方都很少提到它
gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx- include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.1
我刚刚安装了Rails,有过类似的经历。我通过让osx识别正确的g++版本,然后重新安装ruby来修复它。以下是一些建议:
export CC=gcc-4.9
export CXX=g++-4.9
export CPP=cpp-4.9
用g++-v检查你的g++版本。如果这不起作用,你可能需要做一些黑客sudo mv /usr/bin/g++ /usr/bin/g++.bak && sudo ln -s /usr/local/bin/g++-4.9 /usr/bin/g++
注意:此命令不同于链接页面中的命令(移动/usr/local/bin/g++)。我在/usr/local/bin/中没有g++的副本,因此我修改了命令以使用/usr/bin
再次检查g++-v。它现在应该反映了g++的正确版本 rvm install 2.0.0
一旦你做到了,重复一遍
gem install sqlite3 -v '1.3.8'
希望这现在能奏效