安装Rails报错:gem原生扩展构建失败,求解决方法
解决Windows 8下安装Rails时“Failed to build gem native extension”报错的方案
嘿,我之前在Windows环境下折腾Rails安装时也碰到过完全一样的问题,结合自己的踩坑经验和社区解决方案,给你几个亲测有效的办法:
1. 安装Ruby开发工具包(DevKit)
Windows系统本身没有原生编译环境,而很多Ruby gem依赖原生扩展编译,DevKit就是用来解决这个问题的:
- 下载对应你Ruby版本的DevKit(你的Ruby是x64-mingw32,所以要选64位的DevKit,比如RubyInstaller提供的DevKit-mingw64-64版本)
- 把DevKit解压到一个无中文、无空格的路径下,比如
C:\DevKit - 打开CMD(建议以管理员身份运行),切换到DevKit目录:
cd C:\DevKit - 初始化并关联到你的Ruby环境:
ruby dk.rb init ruby dk.rb install
2. 手动指定SQLite3路径安装依赖
报错大概率和sqlite3 gem的编译有关,你已经装了SQLite3,但gem可能找不到它的头文件和库文件:
- 找到你SQLite3的安装目录,确保里面有
include(包含sqlite3.h)和lib(包含sqlite3.lib)文件夹 - 执行以下命令安装sqlite3 gem,替换路径为你实际的SQLite3目录:
gem install sqlite3 --platform=ruby -- --with-sqlite3-include=C:\你的SQLite3路径\include --with-sqlite3-lib=C:\你的SQLite3路径\lib - 成功安装sqlite3后,再尝试安装Rails:
gem install rails
3. 直接使用RailsInstaller一键安装
如果手动配置太麻烦,推荐用官方的RailsInstaller工具,它会把Ruby、Rails、DevKit、SQLite3等所有依赖一次性装好,完全避开编译问题:
- 下载对应Windows版本的RailsInstaller,运行安装程序时同样选择无中文、无空格的安装路径
- 安装完成后,打开Rails Console测试是否正常
4. 更新Gem和Bundler到最新版本
旧版本的Gem工具可能存在兼容性问题,先更新再尝试安装:
gem update --system gem install bundler gem install rails
额外注意事项
- 确保你的CMD运行路径和所有工具的安装路径没有中文或空格,Windows下这类路径经常导致编译失败
- 如果还是报错,可以尝试卸载当前Ruby,重新安装x64版本的Ruby(你当前的版本是对的,但重装可能解决一些隐性的环境问题)
内容的提问来源于stack exchange,提问作者pp-man
相关产品推荐
相关产品推荐

