无法构建 gem 本机扩展?

时间:2021-03-02 17:44:40

标签: ruby-on-rails ruby rubygems

我最近尝试通过运行 gem install rails 通过 gem 安装 rails。但是,它总是失败并显示以下错误消息。

Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

    current directory: D:/Program Files/Ruby30-x64/lib/ruby/gems/3.0.0/gems/websocket-driver-0.7.3/ext/websocket-driver
D:/Program\ Files/Ruby30-x64/bin/ruby.exe -I D:/Program\ Files/Ruby30-x64/lib/ruby/3.0.0 -r ./siteconf20210303-3696-skc9xl.rb extconf.rb
creating Makefile

current directory: D:/Program Files/Ruby30-x64/lib/ruby/gems/3.0.0/gems/websocket-driver-0.7.3/ext/websocket-driver
make "DESTDIR=" clean
Makefile:269: *** multiple target patterns.  Stop.

current directory: D:/Program Files/Ruby30-x64/lib/ruby/gems/3.0.0/gems/websocket-driver-0.7.3/ext/websocket-driver
make "DESTDIR="
Makefile:269: *** multiple target patterns.  Stop.

make failed, exit code 2

Gem files will remain installed in D:/Program Files/Ruby30-x64/lib/ruby/gems/3.0.0/gems/websocket-driver-0.7.3 for inspection.
Results logged to D:/Program Files/Ruby30-x64/lib/ruby/gems/3.0.0/extensions/x64-mingw32/3.0.0/websocket-driver-0.7.3/gem_make.out

有人知道这里实际发生了什么吗?我将不胜感激任何答案。谢谢

1 个答案:

答案 0 :(得分:1)

通常,编译 gem 扩展时的这种“多目标模式”错误是由安装 Ruby 或 gem 的目录名称中的空格引起的。

特别是在 Windows 上,您应该将 Ruby 安装到不包含空格的目录,而不是您当前的位置 D:/Program Files/Ruby30-x64。要解决此问题,我建议您卸载 Ruby 并将其重新安装到更合适的位置。