2016-06-18 27 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命令行工具。

相关问题