【问题标题】:Lazy symbol binding failed Ruby Racer惰性符号绑定失败 Ruby Racer
【发布时间】:2016-03-18 11:43:07
【问题描述】:

我正在运行 El Capitan(全新安装)和带有 Ruby 2.2.2 的 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

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

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

【问题讨论】:

  • 刚刚也遇到了这个问题。 ://
  • 我也有这个,ELCapiton -ruby 2.1.4p265

标签: macos ruby-on-rails-4 v8 therubyracer libv8


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 我也应该发布答案。在安装 ruby​​ racer 之前,我必须使用 system-v8 重建 libv8。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-16
      • 2020-11-24
      • 1970-01-01
      • 2014-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多