2016-06-18 32 views
0

我已經花了過去一小時淘任何解決方案,上網本,但到目前爲止都拿出了兩手空空......不能建立在埃爾卡皮坦寶石原生擴展 - 失敗在lstdC++

我想安裝一個叫做taglib-ruby的gem,它具有依賴於C++編譯器(我認爲其中包含gcc和Xcode Commandline Tools)和taglib(一個C++庫),我已經使用自制程序安裝了它。然而,它似乎並沒有試圖包含它,因爲它無法找到lstdC++。

我想在OSX El Capitan(10.11)上做這個。

有人能告訴我這個依賴是什麼以及我如何安裝它?

請參考下面的控制檯輸出:

$ gem install taglib-ruby 
Building native extensions. This could take a while... 
ERROR: Error installing taglib-ruby: 
    ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby -r ./siteconf20160618-66149-xswlyl.rb extconf.rb 
checking for main() in -lstdc++... *** 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 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby 
    --with-tag-dir 
    --without-tag-dir 
    --with-tag-include 
    --without-tag-include=${tag-dir}/include 
    --with-tag-lib 
    --without-tag-lib=${tag-dir}/lib 
    --with-stdc++lib 
    --without-stdc++lib 
/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:461:in `try_link0' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:476:in `try_link' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:619:in `try_func' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:845:in `block in have_library' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:254:in `open' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:280:in `postpone' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:840:in `have_library' 
    from /usr/local/rvm/gems/ruby-1.9.3-p194/gems/taglib-ruby-0.7.1/ext/extconf_common.rb:28:in `<top (required)>' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from extconf.rb:2:in `<main>' 

extconf failed, exit code 1 

Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p194/gems/taglib-ruby-0.7.1 for inspection. 
Results logged to /usr/local/rvm/gems/ruby-1.9.3-p194/extensions/x86_64-darwin-11/1.9.1/taglib-ruby-0.7.1/gem_make.out 

回答

0

錯誤消息有這樣它:

/usr/local/rvm/rubies/ruby-1.9.3-p194/ 

這是一個很老的版本紅寶石。使用rvm安裝最新版本的紅寶石:

$ rvm install 2.3.1 

然後再次嘗試安裝gem。

如果你想使該版本紅寶石的默認,當你打開終端:

$ rvm --default use 2.3.1 

編輯:嗯...在OSX 10.10.5,我能夠做$ brew install taglib併成功安裝gem $ gem install taglib-ruby在ruby-1.9.3-p194和ruby-2.3.0上。我安裝了完整的Xcode(Xcode 7.2.1)。我想知道你的Xcode命令行工具是否像你的ruby版本一樣嚴重過時?您可以嘗試:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables 

獲取您的Xcode命令行工具的版本。

您可能需要更新rvm,ruby,homebrew和Xcode命令行工具。

相關問題