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

MacOS Catalina 10.15.1下使用gcc安装Nokogiri报错求助

解决MacOS Catalina 10.15.1上Nokogiri安装失败的问题

从你提供的错误日志来看,核心问题是gcc 9.2.0不识别Ruby编译环境传递的几个旧版编译选项:-Wdivision-by-zero、-Wshorten-64-to-32和-Wextra-tokens——这些选项在新版gcc中要么被重命名(比如-Wdivision-by-zero改为-Wdiv-by-zero),要么已经被移除。下面是几个经过验证的解决方案,按优先级排序:

方案一:使用系统原生Clang编译器(最推荐)

MacOS Catalina自带的Clang(属于Xcode Command Line Tools)对系统库和Ruby编译参数的兼容性更好,直接强制gem使用Clang编译Nokogiri:

gem install nokogiri -- --use-system-libraries CC=clang CXX=clang++

如果之前没安装Xcode Command Line Tools,先执行这条命令补装:

xcode-select --install

方案二:移除不兼容的编译选项后安装

临时调整CFLAGS环境变量,删掉那些gcc 9.x不支持的选项,再执行安装命令:

CFLAGS="-O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -fno-common -pipe" gem install nokogiri -- --use-system-libraries

这里我保留了所有兼容的编译选项,仅移除了报错的三个选项。

方案三:修复RVM环境的编译参数

如果你的RVM自动设置的CFLAGS里包含了这些不兼容选项,可以先临时清理它们:

# 移除不兼容的编译选项
export CFLAGS=$(echo $CFLAGS | sed -e 's/-Wdivision-by-zero//g' -e 's/-Wshorten-64-to-32//g' -e 's/-Wextra-tokens//g')
# 安装Nokogiri
gem install nokogiri -- --use-system-libraries

方案四:更新Ruby版本

你当前使用的Ruby 2.6.3发布于2019年,可能对新版gcc的兼容性不足。尝试升级到同系列的最新稳定版(比如2.6.10):

rvm install 2.6.10
rvm use 2.6.10
gem install nokogiri

新版本Ruby修复了不少编译相关的兼容性问题,大概率能解决你的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:04:48