10

我正在运行 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 是有问题的。

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

4

3 回答 3

7

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

gem uninstall therubyracer libv8
gem install libv8 therubyracer -- --with-system-v8
于 2016-10-23T13:52:49.700 回答
2

我也遇到了这个问题,我通过卸载和重新安装解决了这个问题therubyracer

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

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

于 2016-02-01T15:43:51.803 回答
1

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

于 2021-07-07T12:06:01.040 回答