2012-07-31 150 views
7

我一直在爲這一塊付出代價。我已經在幾個相關的帖子中遵循了建議,但無濟於事。如何在新安裝的Mountain Lion上安裝libv8 ruby​​ gem?

我從全新安裝的Mountain Lion開始,安裝了命令行工具,並且基於我發現的通過Homebrew安裝gcc-4.2並添加符號鏈接的其他一些帖子成功安裝了Ruby 1.8.7到/usr/bin/gcc-4.2。

但是,現在我無法成功安裝libv8。下面的錯誤是我已經從現有的建議中得到的。

有沒有額外的輸入?

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /Users/Eric/.rbenv/versions/1.8.7-p352/bin/ruby extconf.rb 
creating Makefile 
Unable to find a compiler officially supported by v8. 
It is recommended to use GCC v4.4 or higher 
Traceback (most recent call last): 
    File "build/gyp/gyp", line 18, in <module> 
    sys.exit(gyp.main(sys.argv[1:])) 
    File "build/gyp/pylib/gyp/__init__.py", line 480, in main 
    generator.GenerateOutput(flat_list, targets, data, params) 
    File "build/gyp/pylib/gyp/generator/make.py", line 2085, in GenerateOutput 
    part_of_all=qualified_target in needed_targets) 
    File "build/gyp/pylib/gyp/generator/make.py", line 756, in Write 
    self.xcode_settings, self.Absolutify, self.Pchify)) 
    File "build/gyp/pylib/gyp/generator/make.py", line 1132, in WriteSources 
    cflags = self.xcode_settings.GetCflags(configname) 
    File "build/gyp/pylib/gyp/xcode_emulation.py", line 258, in GetCflags 
    sdk_root = self._SdkPath() 
    File "build/gyp/pylib/gyp/xcode_emulation.py", line 247, in _SdkPath 
    return os.path.join(self._GetSdkBaseDir(), '%s.sdk' % sdk_root) 
    File "build/gyp/pylib/gyp/xcode_emulation.py", line 233, in _GetSdkBaseDir 
    raise Exception('Error %d running xcode-select' % job.returncode) 
Exception: Error 2 running xcode-select 
make: *** [out/Makefile.x64] Error 1 
Using compiler: g++ 
GYP_GENERATORS=make \ 
    build/gyp/gyp --generator-output="out" build/all.gyp \ 
        -Ibuild/standalone.gypi --depth=. \ 
        -Dv8_target_arch=x64 \ 
        -S.x64 -Dhost_arch=x64 
xcode-select: Error: No Xcode is selected. Use xcode-select -switch <path-to-xcode>, or see the xcode-select manpage (man xcode-select) for further information. 



Gem files will remain installed in /Users/Eric/Development/par8o/vendor/bundle/ruby/1.8/gems/libv8-3.11.8.3 for inspection. 
Results logged to /Users/Eric/Development/par8o/vendor/bundle/ruby/1.8/gems/libv8-3.11.8.3/ext/libv8/gem_make.out 
An error occured while installing libv8 (3.11.8.3), and Bundler cannot continue. 
Make sure that `gem install libv8 -v '3.11.8.3'` succeeds before bundling. 
+0

當運行

brew install v8 

然後使用系統V8你有沒有安裝的Xcode。如果不嘗試安裝xcode – Josnidhin 2012-07-31 04:54:28

+1

我沒有,我寧願避免它,如果我可以。命令行工具包不應該涵蓋這個嗎? – 2012-07-31 13:12:52

+0

可能,不是很確定 – Josnidhin 2012-07-31 13:21:25

回答

-2

不同的寶石需要不同版本的GCC,所以這可能或可能不適合所有寶石的工作,但這些符號鏈接解決了這個問題的JSON,EventMachine的,並libv8寶石上的山獅已安裝的Xcode 4.4。

須藤LN -s /usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2

須藤LN -s /usr/llvm-gcc-4.2/bin /llvm-gcc-4.2 /usr/bin/g++-4.2

+0

這對我來說不起作用... – 2012-08-01 14:40:56

+0

不同版本的RUBY需要不同的編譯器。 1.9.3和1.9.2分別需要不同版本的GCC。對於1.9.3,Mountain Lion附帶的GCC應該沒問題,但是如果您想要Ruby 1.9.2m,則必須安裝GCC 4.2 – tesserakt 2012-08-15 16:53:10

15

這筆交易與紅寶石1.8.7。可能你需要這顆寶石來運行therubyracer。而且,使這項工作,你需要安裝therubyracer寶石如下:

RUBYOPT=-rrubygems gem install therubyracer 

這將同時安裝therubyracer和libv8寶石。

來源:http://coderwall.com/p/y1djxq

+1

謝謝,您爲我提供了一些頭腦風暴的食物... – 2013-08-08 02:43:01

0

使用上述RUBYOPT = -rrubygems建議爲我工作,但我不得不先卸載我現有therubyracer和libv8寶石。

0

的各種方法很多失敗的嘗試後,我只是最後下載Xcode和作爲錯誤信息所暗示的,是會做的伎倆

3

在我的情況下,編譯失敗,由於與libtool的問題。安裝libv8寶石時出錯是libtool: unrecognized option '-static'

問題是,我的macports-Installation有一個明顯不工作的libtool。並且$PATH中的macports-Directory在調用錯誤的libtool的常規目錄之前。

從PATH-Environmentvariable中刪除macports-Directories的訣竅是:libtoolXCode被使用,一切都很順利。

+0

您是否可以成爲關於你是如何做到這一點的更具體一點?我對這個過程相當陌生。 – flyingarmadillo 2013-05-19 12:30:20

0

以上答案都不適用於我。這是什麼做的:

gem install libv8 -v '3.11.8.3' 
gem install therubyracer -v '0.11.0beta5' 

裁判:https://coderwall.com/p/s8ofka

我的系統:

OSX Mountain Lion 
Ruby 1.9.3 
2

我對OS X 10.7這個問題之後。5,遵循的Gemfile項工作對我來說:

gem "libv8", '3.11.8.13' 

> ruby -v 
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2] 
0

第一次嘗試,並通過使用解決該問題:

RUBYOPT=-rrubygems gem install therubyracer 

如果錯誤仍然存​​在,請更新你的寶石:

bundle update 
3

我有這個問題,並找到了解決方案here

總之,自己安裝v8 - 如果你有家庭W使您可以在安裝

gem install libv8 -- --with-system-v8 
+2

'gem install libv8 -v = 3.16.14.2 - --with-system-v8'這對我有效(注意額外的' - ') – Florin 2014-10-28 10:59:43

+0

謝謝@弗洛林,那是我的錯誤:) – cadlac 2015-01-13 17:35:07

相關問題