You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ventura系统安装therubyracer报错:无法获取c++编译器版本字符串

解决gem install therubyracer安装失败问题

报错信息

Fetching therubyracer-0.12.0.gem
Building native extensions. This could take a while...
ERROR:  Error installing therubyracer:
ERROR: Failed to build gem native extension.

current directory: /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8
/Users/sidmallik/.rvm/rubies/ruby-2.6.6/bin/ruby -I /Users/sidmallik/.rvm/rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20230417-13868-1rqlxz3.rb extconf.rb
creating Makefile
/Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/compiler.rb:44:in `version_string_of': Could not get version string of compiler c++ (RuntimeError)
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/compiler.rb:32:in `type_of'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/compiler.rb:28:in `block in available_compilers'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/compiler.rb:28:in `map'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/compiler.rb:28:in `available_compilers'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/builder.rb:108:in `choose_compiler'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/builder.rb:16:in `initialize'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/location.rb:23:in `new'
from /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19/ext/libv8/location.rb:23:in `install!'
from extconf.rb:7:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/gems/libv8-3.16.14.19 for inspection.
Results logged to /Users/sidmallik/.rvm/gems/ruby-2.6.6@emailmarketing/extensions/x86_64-darwin-19/2.6.0/libv8-3.16.14.19/gem_make.out

已执行的前置操作

  • gem uninstall libv8
  • brew install v8

环境信息

  • 系统:Ventura
  • Ruby版本:2.6.6(通过rvm管理)

解决方法

方法1:指定兼容编译器

旧版libv8无法识别Ventura自带的新版clang,需指定低版本兼容编译器:

  1. 安装llvm@11:
    brew install llvm@11
    
  2. 设置环境变量指向该编译器:
    export CC=/usr/local/opt/llvm@11/bin/clang
    export CXX=/usr/local/opt/llvm@11/bin/clang++
    
  3. 重新安装依赖:
    gem install libv8 -v 3.16.14.19 -- --with-system-v8
    gem install therubyracer -v 0.12.0
    

方法2:通过Bundler配置(适用于Gemfile项目)

  1. 安装对应版本的v8:
    brew install v8@3.16
    
  2. 在Gemfile中添加:
    gem 'libv8', '3.16.14.19', platforms: :ruby, require: false
    gem 'therubyracer', '0.12.0', platforms: :ruby
    
  3. 配置bundler构建参数:
    bundle config build.libv8 --with-system-v8
    bundle config build.therubyracer --with-v8-dir=$(brew --prefix v8@3.16)
    bundle install
    

方法3:升级Ruby版本(可选)

Ruby 2.6.6与Ventura兼容性有限,升级到2.7+版本可规避部分编译器兼容问题:

rvm install 2.7.8
rvm use 2.7.8@your_gemset
gem install therubyracer

内容的提问来源于stack exchange,提问作者sid297

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 23:24:55