Gem::Ext::BuildError: ERROR: 在 Mac 上构建本地 gem 扩展失败。无法安装 racc。

3

使用本地扩展程序安装 racc 1.5.2
Gem::Ext::BuildError:错误:无法构建 gem 本地扩展程序。

current directory: /Library/Ruby/Gems/2.6.0/gems/racc-1.5.2/ext/racc/cparse   

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r

./siteconf20210323-1013-1j708gz.rb extconf.rb

检查rb_ary_subseq()是否存在... *** extconf.rb失败 ***

由于某些原因(可能是缺少必要的库和/或头文件),无法创建Makefile。请 在mkmf.log文件中查看更多详细信息。您可能需要配置选项。

已提供的配置选项: --with-opt-dir --without-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=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do':编译器未能生成可执行文件。(RuntimeError)

您首先必须安装开发工具。

from/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:546:in `block in try_link0'

from/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/tmpdir.rb:93:in`mktmpdir'

from/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:543:in`try_link0'

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:570:in`try_link'

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:782:in`try_func'

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1069:in`block in have_func'

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:959:in`block in checking_for'

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:361:in`block (2 levels) in postpone'

from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:331:in`open'

来自/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb的第361行中,位于“block in postpone”内

来自/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb的第331行中,位于“open”内

来自/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb的第357行中,位于“postpone”内

来自/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb的第958行中,位于“checking_for”内

来自/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb的第1068行中,位于“have_func”内

在extconf.rb中的第6行

要查看这个扩展未能编译的原因,请检查mkmf.log文件,该文件可以在此处找到:

/Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/racc-1.5.2/mkmf.log

extconf失败,退出码为1

Gem文件将继续保留在/Library/Ruby/Gems/2.6.0/gems/racc-1.5.2中以供检查。

结果记录在/Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/racc-1.5.2/gem_make.out中

安装racc(1.5.2)时发生错误,Bundler无法继续操作。

请确保在绑定之前成功运行gem install racc -v '1.5.2' --source 'https://rubygems.org/'

在Gemfile中:

rails被解析为6.1.3,它依赖于

actioncable被解析为6.1.3,它依赖于

actionpack被解析为6.1.3,它依赖于

actionview被解析为6.1.3,它依赖于

rails-dom-testing被解析为2.0.3,它依赖于

nokogiri被解析为1.11.2,它依赖于

racc


1
还有另一个宝石需要相同的依赖关系,需要另一个版本吗?检查一下并手动安装您需要的宝石的明确版本:"gem install gem_name -v x.x.x ... - Marcos R. Guevara
1个回答

3
宝石(racc)有以下依赖关系:
 *  Ruby 1.8.x or later.
(*) make and C compiler.

请参阅:Gem文档

所以我的猜测是,您的计算机中可能有一个或多个软件没有正确安装。

  1. ruby -v是否有效?
  2. make -v是否有效?
  3. gcc -v是否有效?

要安装ruby,您可以考虑使用rbenv (https://github.com/rbenv/rbenv) 要安装make和gcc,只需运行:

xcode-select --install

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接