You need to enable JavaScript to run this app. Windows下执行gem install rails报gem原生扩展构建失败求助
优惠活动
大模型
产品
解决方案
定价
更多

Windows下执行gem install rails报gem原生扩展构建失败求助

Windows环境Rails安装编译失败问题定位与解决

问题成因

报错触发于websocket-driver 0.7.3原生扩展编译阶段,出现Makefile:269: *** multiple target patterns. Stop.错误的核心原因如下:

  • Ruby安装路径包含空格(示例场景中路径为D:/Program Files/Ruby30-x64,Program Files目录名存在空格分隔),配套Mingw环境中的GNU Make工具解析带空格的路径生成Makefile时,会将空格后的路径段误识别为独立编译目标,直接触发多目标匹配报错
  • websocket-driver 0.7.3版本对Windows平台Ruby 3.0环境的Makefile路径转义逻辑存在缺陷,未对带空格的安装路径做自动转义处理,进一步放大了路径兼容问题

可执行解决方案

按操作优先级从高到低实施:

  • 优先拉取预编译包安装,跳过本地编译环节:执行gem install rails --platform x64-mingw-ucrt,参数会自动匹配Windows x64平台的预编译二进制gem包,无需本地调用make完成原生扩展编译,从根源避开Makefile解析报错
  • 清理安装残留缓存:执行gem cleanup命令,清除之前安装中断残留的gem文件、临时编译目录,避免旧缓存引发重复报错
  • 调整Ruby安装路径规避兼容问题:将Ruby整体目录迁移到无空格、无中文的纯英文路径下(例如直接放置在D:/Ruby30-x64,不要嵌套在带空格的Program Files类目录中),重新执行gem install rails即可正常完成编译流程
  • 临时兜底修正:若暂时无法调整安装路径,可进入报错日志提示的websocket-driver/ext/websocket-driver目录,手动打开生成的Makefile,将第269行附近所有包含空格的路径段用双引号包裹(例如将D:/Program Files/Ruby30-x64/...修改为"D:/Program Files/Ruby30-x64/..."),保存后重新执行安装命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 18:45:07