懒惰的符号绑定失败Ruby Racer

nul*_*tek 5 macos v8 therubyracer ruby-on-rails-4 libv8

我正在使用Ruby 2.2.2运行El Capitan(全新安装)和Rails 4.2.1应用程序.我最初遇到了安装libv8的问题,不得不强制安装brew install v8和gem install libv8(version),并将systemv8作为标志.Bundle工作正常并安装所有gem依赖项.

但是当我去加载rails sbundle exec thin start启动我的应用服务器时,我收到以下错误.

dyld: lazy symbol binding failed: Symbol not found: __ZN2v82V821AddGCPrologueCallbackEPFvNS_6GCTypeENS_15GCCallbackFlagsEES1_
  Referenced from: /Users/shakycode/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/therubyracer-0.12.2/v8/init.bundle
  Expected in: flat namespace

dyld: Symbol not found: __ZN2v82V821AddGCPrologueCallbackEPFvNS_6GCTypeENS_15GCCallbackFlagsEES1_
  Referenced from: /Users/shakycode/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-15/2.2.0-static/therubyracer-0.12.2/v8/init.bundle
  Expected in: flat namespace
Run Code Online (Sandbox Code Playgroud)

我正在谷歌搜索和寻找答案,但到目前为止还没有提出太多的工作.我升级到El Capitan的另一台机器没有问题,但这种干净安装对于libv8/v8/therubyracer来说是个问题.

关于如何调试这个的任何想法?我想要编码.

小智 5

只是重新安装therubyracer也不适合我.完整说明:

gem uninstall therubyracer libv8
gem install libv8 therubyracer -- --with-system-v8
Run Code Online (Sandbox Code Playgroud)


Sim*_*mon 2

我刚刚也遇到了这个问题,我通过卸载并重新安装解决了它,therubyracer如下所示:

gem uninstall therubyracer
gem install therubyracer -v '0.12.2' -- --with-system-v8
Run Code Online (Sandbox Code Playgroud)

libv8对我来说,这是由Gemfile 中的更新触发的。bundle install更新后似乎运行没有任何问题,但每当我尝试在命令行上执行任何操作时,我都会看到与OP相同的错误。

  • 我也应该发布答案。在安装 ruby​​ racer 之前,我必须使用 system-v8 重建 libv8。 (2认同)