0

我正试图让therubyracergem 安装在 Mavericks 10.9 上,我正准备把头发扯下来——任何帮助都将不胜感激。

我知道关于这个主题还有很多其他问题,但实际上以下任何一个(包括各种组合和有希望的重试,此时已经花费了 2 天以上)都解决了任何问题

  1. 卸载libv8和安装therubyracer
  2. brew install libv8改为使用
  3. 安装apple-gcc或类似
  4. 安装各种版本的XcodeDeveloper Tools
  5. 重新安装rvm和重建ruby 1.9.3

我能够实现的最新功能是收到此错误消息:

> gem install therubyracer
Building native extensions.  This could take a while...
ERROR:  Error installing therubyracer:
  ERROR: Failed to build gem native extension.

    /Users/aqua/.rvm/rubies/ruby-1.9.3-p545/bin/ruby -r ./siteconf20150127-54061-10i2fna.rb extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
creating Makefile

make  clean

make
compiling accessor.cc
g++-4.6: error: unrecognized option '-rdynamic'
make: *** [accessor.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/aqua/.rvm/gems/ruby-1.9.3-p545/gems/therubyracer-0.12.1 for inspection.
Results logged to /Users/aqua/.rvm/gems/ruby-1.9.3-p545/extensions/x86_64-darwin-13/1.9.1/therubyracer-0.12.1/gem_make.out

周围似乎没有太多信息g++-4.6: error: unrecognized option '-rdynamic'。我的第一个猜测是可能gcc46不支持这个标志。

根据其他帖子建议,我尝试安装apple-gcc42

brew tap homebrew/dupes
brew install apple-gcc42

并使用适当的环境上下文变量再次执行它以将其指向新apple-gcc42安装:

> $ CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 gem install therubyracer

仍然没有运气,奇怪的是仍然抛出同样的错误gcc46,这让我觉得它根本没有apple-gcc42 收到

我什至尝试对正确的版本进行符号链接(当然要备份原件)

cd /usr/bin

mv gcc gcc_backup
mv g++ g++_backup
mv cpp cpp_backup

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp

绝对没有运气,还在扔g++-4.6: error: unrecognized option '-rdynamic'

那么..你如何强制gem install使用特定的编译器版本?这甚至是正确的方法吗?

谢谢您的帮助!

4

1 回答 1

0

我也面临同样的问题。遵循您上面描述的相同步骤。以下是我为安装 therubyracer 所做的额外导出。

export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2
export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2
export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2

我没有做brew install libv8

接下来,卸载 libv8 gem

gem uninstall libv8

终于安装了rubyracer

gem install therubyracer -v='0.12.2'

我正在使用 ruby​​ 2.2.2,希望这会有所帮助。

于 2015-08-13T04:39:34.783 回答