Windows系统下安装Ruby openxml-docx gem报错求助
解决openxml-docx gem安装时的原生扩展编译失败问题
你已经完成了MSYS安装,但还是卡在了ox依赖的原生扩展编译上——这是openxml-docx的核心依赖,咱们一步步来搞定:
步骤1:确保安装64位编译工具链
你的Ruby是64位版本(Ruby25-x64),必须搭配Mingw64的编译工具,别用默认的MSYS终端:
- 打开MSYS2安装目录下的
mingw64.exe(不是msys2.exe) - 在这个终端里执行命令安装必要工具:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-make
步骤2:让Ruby正确关联MSYS环境
RubyInstaller自带的ridk工具能一键帮你配置环境:
- 打开Windows命令提示符(CMD)或PowerShell
- 执行:
ridk enable - 之后再尝试安装gem:
gem install openxml-docx
步骤3:手动指定编译路径(如果上述步骤无效)
有时候PATH优先级不对,导致Ruby找不到64位编译器:
- 在CMD里先设置PATH(假设MSYS2装在
C:\msys64):set PATH=C:\msys64\mingw64\bin;%PATH% - 然后强制用原生编译模式安装:
gem install openxml-docx --platform=ruby
备选方案:安装预编译的ox gem
如果编译实在搞不定,直接装预编译好的ox版本:
- 找到对应Ruby2.5 x64的ox gem包(比如
ox-2.9.2-x64-mingw32.gem) - 本地安装这个gem:
gem install ox-2.9.2-x64-mingw32.gem - 之后再安装openxml-docx就不会再编译ox了
问题根源说明
openxml-docx依赖的ox gem需要编译C原生代码,若你的MSYS工具链是32位的,或者Ruby没正确关联到64位编译工具,就会出现编译失败的错误。用Mingw64工具链才能匹配你的64位Ruby版本。
内容的提问来源于stack exchange,提问作者Andres Pérez
相关产品推荐
相关产品推荐

