惰性符号绑定失败 Ruby Racer

Lazy symbol binding failed Ruby Racer

我是 运行 El Capitan(全新安装)和一个带有 Ruby 2.2.2 的 Rails 4.2.1 应用程序。我 运行 最初在安装 libv8 时遇到问题,不得不使用 brew install v8 强制安装,并且 gem 安装 libv8(版本)并使用 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

我在谷歌上搜索并寻找答案,但到目前为止还没有找到很多有用的答案。我的另一台升级到 El Capitan 的机器没有问题,但是这个干净的安装有问题libv8/v8/therubyracer。

关于如何调试这个有什么想法吗?我要码字

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

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

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

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

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

我遇到了与 mini_racer gem 类似的错误。我将版本从 3.0.1 更新到 4.0.0 并且它有效。现在没有收到任何错误。多半是版本问题。有时 gem 的版本与我们的 OS 版本不兼容,就会出现此问题。 我用的是 macOS Sur。 gem 的许多旧版本与其不兼容。