在 OS X 10.9+ 上安装 libv8 gem

2024-03-13

我正在尝试安装 libv8 3.16.14.3,但在使用最新稳定 rvm 和 ruby​​-1.9.3-p125 的 OSX Mavericks 上出现错误。

这是运行命令“gem install libv8”的输出:

~/src(branch:master) » gem install libv8
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing therubyracer:
  ERROR: Failed to build gem native extension.

    /Users/me/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb
creating Makefile
Compiling v8 for x64
Using python 2.7.5
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
Using compiler: g++
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Unable to find a compiler officially supported by v8.
It is recommended to use GCC v4.4 or higher
libtool: unrecognized option `-static'
libtool: Try `libtool --help' for more information.
make[1]: *** [/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a] Error 1
make: *** [x64.release] Error 2
/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:36:in `block in verify_installation!': libv8 did not install properly, expected binary v8 archive '/Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a'to exist, but it was not found (Libv8::Location::Vendor::ArchiveNotFound)
  from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `each'
  from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:35:in `verify_installation!'
  from /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/location.rb:26:in `install!'
  from extconf.rb:7:in `<main>'
GYP_GENERATORS=make \
  build/gyp/gyp --generator-output="out" build/all.gyp \
                -Ibuild/standalone.gypi --depth=. \
                -Dv8_target_arch=x64 \
                -S.x64  -Dv8_enable_backtrace=1 -Dv8_can_use_vfp2_instructions=true -Darm_fpu=vfpv2 -Dv8_can_use_vfp3_instructions=true -Darm_fpu=vfpv3
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/allocation.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/atomicops_internals_x86_gcc.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/bignum-dtoa.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/cached-powers.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/conversions.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/diy-fp.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/dtoa.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fast-dtoa.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/fixed-dtoa.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/once.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparse-data.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/preparser-api.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/scanner.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/strtod.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/token.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/unicode.o
  CXX(target) /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/obj.target/preparser_lib/src/utils.o
  LIBTOOL-STATIC /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/vendor/v8/out/x64.release/libpreparser_lib.a


Gem files will remain installed in /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3 for inspection.
Results logged to /Users/me/.rvm/gems/ruby-1.9.3-p125@proj-rails3-ruby19/gems/libv8-3.16.14.3/ext/libv8/gem_make.out

这是因为 OS X 10.9+ 使用的是 GCC 4.8 版本。正如拉取请求中提到的,旧版本的 libv8 不正式支持这一点(https://github.com/cowboyd/libv8/pull/95 https://github.com/cowboyd/libv8/pull/95)。请尝试在 Gemfile(或)中提高 libv8 的版本bundle update应该足够了。

来自libv8README https://github.com/cowboyd/libv8#bring-your-own-compiler

带上你自己的V8

因为 libv8 是 therubyracer 使用的 V8 引擎的接口,所以即使您已经安装了 V8,您也可能需要使用 libv8。如果您希望使用自己的 V8 安装,而不是为您构建它,请使用 --with-system-v8 选项。

使用 RubyGems:

gem install libv8 [-v YOUR_VERSION] -- --with-system-v8

使用 Bundler(在您的 Gemfile 中):

捆绑配置 build.libv8 --with-system-v8

请注意,如果您打算运行自己的 V8,则必须安装 V8 及其标头(可在 Debian 发行版的 libv8-dev 中找到)。

带上你自己的编译器

您可以通过在编译前设置 CXX 环境变量或将 --with-cxx= 选项添加到包配置来指定您选择的编译器:

捆绑配置 build.libv8 --with-cxx=clang++

Edit:

如果这个问题是由therubyracer,按照建议尝试以下操作铁轨上的骑手 https://stackoverflow.com/users/1197091/rider-on-rails here https://stackoverflow.com/questions/23536893/installing-libv8-and-therubyracer-gems-on-mavericks-with-system-v8-installation:

gem 卸载 libv8

gem install therubyracer -v YOUR_RUBY_RACER_VERSION

gem install libv8 -v YOUR_VERSION -- --with-system-v8

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OS X 10.9+ 上安装 libv8 gem 的相关文章

  • Bundler 抛出没有这样的文件或目录进行 gem 安装

    在 Gemfile 中 gem backup git gt git github com tenmiles backup git ref gt develop n 本地和分阶段 bundle install确实成功完成了 在生产中 当bun
  • 如何从 Carrierwave Uploader 对象引用父模型

    我想在通过 Carrierwave 完成文件上传后运行一些方法 Carrierwave包含几种回调方法详解here https github com jnicklas carrierwave wiki How to 3a use callb
  • 释放宝石时 rake 释放挂起

    我正在尝试将我的第一个宝石发布到 Ruby Gems 该宝石在本地运行良好 我使用以下方式释放它 rake release 这在控制台中给了我这个 example gem 0 0 3 built to pkg example gem 0 0
  • Mac OSX mavericks 中未找到 Maven

    将我的 Mac OSX 10 8 升级到 10 9 后 在 usr share 路径中找不到 Maven 但它安装在 10 8 中 当我尝试这个命令时 maven version 得到这个结果 bash mvn 找不到命令 但在10 8上运
  • 如何修复 WSL 上 Ruby Gems 安装程序的错误?

    我尝试使用 RubyGems 安装软件包 请注意 我使用适用于 Linux 的 Windows 子系统 我打算安装 Jekyll 包 I typed gem install jekyll 之后就出现了一个错误 Building native
  • ruby datamapper 将无法加载

    我试图通过遵循本教程来了解 Sinatra ruby 框架 http net tutsplus com tutorials ruby singing with sinatra the recall app 2 http net tutspl
  • 在 Windows 上使用 bcrypt 3.0.1 和 ruby​​2.0 时出现问题

    有人在 Windows 8 上安装 bcrypt 3 0 1 或 3 1 2 时遇到任何问题吗 我尝试过测试不同的版本 但出现此错误 但运行 Rails 服务器后出现此错误 无法加载此类文件 2 0 bcrypt ext 您的应用程序中没有
  • Mavericks 上的 Rails + MySQL - 库未加载:libmysqlclient.18.dylib

    当我运行 Rails 时 rails s 在我的本地主机 OSX Mavericks 上应用程序 我收到此错误 message Users adam rvm gems ruby 2 0 0 p481 gems mysql2 0 3 16 l
  • 我的 Rails 应用程序的捆绑包安装冻结

    有时 在使用 Rails 应用程序时 运行bundle install命令在处理 Rails Gemfile 时冻结 我尝试过清除缓存 但没有任何改善 请务必仔细检查并确保您声明的是 Rails 版本 如果不声明版本 Bundler 最终可
  • 无法在 Mavericks/Yosemite 中签署 kext?

    目标 签署我自己的软件包和我自己的内核扩展 上下文中的 我自己的 意味着 我编写的 或者我在其他地方选择的 从它们的源代码中重新编译的 并且想要安装在我的机器上 问题 小牛队不接受我的签名Code Signing Failure code
  • 了解 Gemfile.lock:删除 Gemfile.lock 然后再次运行捆绑安装是否可以?

    我们会对此进行测试 但如果不应该发生这种情况 我们不想冒险破坏我们的开发环境 删除Gemfile lock可以吗 我们使用的是 Rails 3 0 6 您可能不会破坏您的开发环境 但是 您最终可能会得到比以前更新版本的宝石 这取决于你如何定
  • Bundler 不会安装 mysql2

    首先 我在 SO 和谷歌上浏览了数十篇帖子 但未能找到答案 我正在尝试使用捆绑器安装 mysql2 但它不会这样做 运行于Ubuntu 服务器 11 04 纳蒂 以下是一些背景信息 ruby v ruby 1 8 7 2012 02 08
  • 类型错误:$(...).selectize 不是函数

    我将 selectize rails gem 安装到了我的 Rails 应用程序中 并且正在尝试使其正常工作 我的网络控制台中不断出现此错误 TypeError selectize is not a function 并且浏览器中没有任何反
  • Qt 5 和 OS X Mavericks 问题

    我正在使用 Cmake 在 OS X 10 9 上构建 QT 项目 自 Mavericks 以来 OpenGL 标头的位置似乎发生了变化 文件夹 System Library Frameworks OpenGL framework Head
  • 在 Rails 中扩展 ruby​​ gem

    假设我有一个 Rails 应用程序 它从 gem 例如 CMS 获取大部分功能 如果我现在需要添加一些自定义 例如 向用户添加属性 最佳实践方法是什么 如果我自定义 gem 那么将来更新 gem 时将会遇到问题 这里采取的最佳方法是什么 这
  • 编译资产时“堆栈级别太深”

    运行后brew upgrade 或者其他更新了我的 gems ruby 版本的东西 我的rake assets precompile任务不再有效 我收到此错误 rake aborted stack level too deep in Use
  • Ruby 的所有/最佳宝石列表? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何找出 gem 捆绑包将 gem 锁定在特定版本的原因?

    我正在尝试指定一个版本节俭宝石 http rubygems org gems thrift在我的宝石文件中 gem thrift gt 0 6 0 当我尝试跑步时bundle install 我收到此错误 You have requeste
  • 如果 gem 安装不支持,本机扩展会回退到纯 Ruby

    我正在开发一个 gem 目前是纯 Ruby 但我也一直在为其中一个功能开发更快的 C 变体 该功能在纯 Ruby 中可用 但有时很慢 这种缓慢只会影响一些潜在用户 取决于他们需要哪些功能 以及他们如何使用这些功能 因此 如果 gem 无法在
  • 为 Rails 3 应用程序制作自定义插件/gem/引擎

    我正在遵循指南http edgeguides rubyonrails org plugins html http edgeguides rubyonrails org plugins html而且它似乎有点过时了 您能看一下并告诉我哪些部分

随机推荐