由于 Mac 上的编译器问题,无法安装 therubyracer gem?

Posted

技术标签:

【中文标题】由于 Mac 上的编译器问题,无法安装 therubyracer gem?【英文标题】:Trouble installing therubyracer gem due to compiler issue on mac? 【发布时间】:2016-06-14 23:17:21 【问题描述】:

我一直在尝试在我的 Mac 上使用 OS X El Capitan 为 rails 应用程序安装 gem,therubyracer,但我不断收到与 -rdynamic 标志相关的错误,这导致无法构建本机扩展。

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

/Users/masonscott/.rvm/rubies/ruby-2.2.1/bin/ruby -r ./siteconf20160301-14168-1g6b007.rb extconf.rb
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling accessor.cc
g++: error: unrecognized command line option '-rdynamic'
make: *** [accessor.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/masonscott/.rvm/gems/ruby-2.2.1/gems/therubyracer-0.12.2 for inspection.
Results logged to /Users/masonscott/.rvm/gems/ruby-2.2.1/extensions/x86_64-darwin-14/2.2.0-static/therubyracer-0.12.2/gem_make.out

我试过到处搜索,似乎编译器应该忽略 rdynamic 标志,但由于某种原因我的没有。我尝试通过 gcc 更新到 gcc5,但这仍然没有解决问题。我该怎么做才能解决这个问题?

【问题讨论】:

【参考方案1】:

我在安装 therubyracer 时遇到了问题(因为 libv8 的问题)。我想你可以试试这个。

$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'

另一种方式如下

gem uninstall libv8
brew install v8
gem install therubyracer
gem install libv8 -v '3.16.14.3' -- --with-system-v8

并进行捆绑安装。我认为它可以解决您的问题。

【讨论】:

谢谢,我想我明白了。我不得不将 gcc 编译器更改为 4.2 版。出于某种原因,较新的 gcc 版本不只是忽略 -rdynamic 标志,该标志仅用于在 linux 上编译,实际上与 windows 和 osx 不兼容according to this question

以上是关于由于 Mac 上的编译器问题,无法安装 therubyracer gem?的主要内容,如果未能解决你的问题,请参考以下文章

mac上的mxe交叉编译器QSerialPort

无法从MAC OS 10.14.2上的源代码安装MongooseIM

Mac上xampp上的Imagick:无法使用image.so

Mac App Store 上的 Xcode 无法安装,显示磁盘空间不足

Mac Silicon M1 编译安装 PHP8 & Swoole4.6 ARM64 全过程记录

MAC OSX LION:mac 上的 gcc 未编译 wget