安装gem时出错:无法为cygwin的堆保留空间,Win32错误487
我正在尝试在我的机器上安装win32-api
gem,在构建原生扩展时我遇到了一些问题:
$ gem install win32-api --no-ri --rdoc Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... C:\Programs\dev_kit\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0 ERROR: Error installing win32-api: ERROR: Failed to build gem native extension. c:/Programs/ruby/bin/ruby.exe extconf.rb checking for strncpy_s()... no creating Makefile make 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x60E90000, RegionSize 0x170000, State 0x10000 C:\Programs\dev_kit\bin\make.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0
安装任何尝试编译本机扩展的gem时会发生此问题,例如json或win32-api。
我已经尝试改变这台机器的虚拟内存大小,但它没有用。
我的配置:
- Ruby版本:1.8.7p371
- gem版:1.8.24
- Bash 3.1.0
- DevKit 4.5.2
- Windows 7 x64
我遇到了完全相同的问题,经过大量的搜索和许多不同的尝试后,这就是为我解决的问题:
-
从http://www.tishler.net/jason/software/rebase/下载
rebase
(下载最新的* .exe版本)并运行它。 -
启动提示符(“以管理员身份运行”)并转到
dev-kit
文件夹(例如,我的是C:\Programs\dev_kit
) -
在dev-kit文件夹中,运行
devkitvars.bat
以将devkitvars.bat
添加到路径中。 -
现在做一个
cd bin
(它让我到C:\Programs\dev_kit\bin
)并从那里运行:rebase -b 0x30000000 msys-1.0.dll
尝试再次安装gem。 现在您应该看到Building native extensions. This could take a while...
,而不是看到错误消息Building native extensions. This could take a while...
Building native extensions. This could take a while...
它会在那里挂一会儿。
几分钟/秒后,您的gem应该成功安装。 不再头疼:)