惰性符号绑定失败 Ruby Racer

Posted

技术标签:

【中文标题】惰性符号绑定失败 Ruby Racer【英文标题】:Lazy symbol binding failed 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 【参考方案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 与它不兼容。

【讨论】:

以上是关于惰性符号绑定失败 Ruby Racer的主要内容,如果未能解决你的问题,请参考以下文章

dyld:惰性符号绑定失败:找不到符号:_objc_loadWeak

dyld:惰性符号绑定失败:找不到符号:___emutls_get_address

Xcode 10 GM:XCUIScreen.main.screenshot() 因“dyld:惰性符号绑定失败”而崩溃

嵌套在惰性一次性 ng-repeat 绑定中的绑定是不是只绑定一次?

使用 osx Yosemite 安装 ruby​​racer 时出错

安装 ruby​​racer 时出错