我无法在运行Yosemite的新Mac上安装我的gem包,因为一个gem只安装了OS附带的C编译器,而另一个需要Homebrew的C编译器。
我完全无法工作,只是因为这个错误导致了gcc
4.9.1
版本cc1: error: -Werror=shorten-64-to-32: no option -Wshorten-64-to-32
的错误:
bundle install
我不明白这个错误的含义,也不知道如何告诉编译器忽略它。或者甚至是可能的
我的具体情况是v8
gem上运行Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/me/.rbenv/versions/2.1.0/bin/ruby extconf.rb
creating Makefile
Compiling v8 for x64
Using python 2.7.6
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Using compiler: g++
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
../src/cached-powers.cc:136:18: error: unused variable 'kCachedPowersLength' [-Werror,-Wunused-const-variable]
static const int kCachedPowersLength = ARRAY_SIZE(kCachedPowers);
失败:
g++
新版XCode
附带的Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
编译器将其作为版本:
4.2
所以,gcc
已经过时了。如果我可以使用Homebrew CC
(即4.9.1)配置一个gem来构建,我认为它会起作用。
我尝试将CXX
和gcc
变量设置为Homebrew Nokogiri
,但是{{1}} gem不会安装上面的第一条错误消息。如此多的宝石安装了Yosemite cc,可能会留下最好的路线。我不知道。
答案 0 :(得分:2)
使用bundle配置你可以传递编译器标志。更多信息可以帮助您获得更好的答案。
请参阅:http://bundler.io/man/bundle-config.1.html
我刚发现:How to install therubyracer gem on 10.10 Yosemite? 这将给你libv8然后v8应该编译和gem安装。在调查这个问题时,我发现Yosemite和clang / gcc等周围存在大量问题,包括对nokogiri的修复:Installing Nokogiri on OSX 10.10 Yosemite
基本上,从我收集的yosemite gcc编译器过时(原始错误意味着编译器不能识别给定的编译选项,即gcc 4.2中不存在该功能)。我认为最好的解决方案是通过自制软件和安装路径等安装更新的gcc,因此gem installs只使用自制软件版本。
希望这些链接有所帮助。