懒惰的符号绑定失败Ruby Racer

时间:2015-12-12 17:03:42

标签: macos ruby-on-rails-4 v8 therubyracer 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

我正在使用Google搜索和搜索答案,但到目前为止还没有找到很多可行的答案。我升级到El Capitan的另一台机器没有问题,但这种干净安装对于libv8 / v8 / therubyracer来说是个问题。

有关如何调试此问题的任何想法?我想编码。

3 个答案:

答案 0 :(得分:5)

只是重新安装therubyracer对我来说也不起作用。完整说明:

gem uninstall therubyracer libv8
gem install libv8 therubyracer -- --with-system-v8

答案 1 :(得分:2)

我刚刚遇到了这个问题,我通过卸载并重新安装therubyracer就解决了这个问题:

gem uninstall therubyracer
gem install therubyracer -v '0.12.2' -- --with-system-v8

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

答案 2 :(得分:1)

我在使用 mini_racer gem 时遇到了类似的错误。我将版本从 3.0.1 更新到 4.0.0 并且有效。现在没有收到任何错误。主要是版本问题。有时 gem 的版本与我们的操作系统版本不兼容,可能会出现此问题。 我使用的是 macOS Sur。许多旧版本的 gem 与它不兼容。