赢8,cygwin堆失败

我得到以下错误与编译(我有cygwin.dll)

*** Couldn't reserve space for cygwin's heap (0x150000) in child, cygheap, Win32 error 0 0 [main] make 4336 sync_with_child: child 2968(0x120) died before initialization with status code 0x1 308 [main] make 4336 sync_with_child: *** child state waiting for longjmp 

怎么能解决? 谢谢

  • 重新启动系统:

大多数抱怨这个问题的用户报告说重启后会消失。 如果您正在使用Windows 7,请在此线程中查看来自BerndP的消息,它有一些与调整Windows上的虚拟内存设置相关的提示。

  • 可能是一些软件干扰Cygwin:

这篇文章对Cygwin的随机问题进行了一个有趣的讨论。 BLODA列表列出了已知在Cygwin中导致奇怪故障和问题的应用程序列表。

编辑

Windows 8还没有正式发布,所以不要指望Cygwin能够使用它 。

Cygwin可以运行在所有现代32位版本的Windows上,包括截至编写本文时的Windows 2000,Windows XP,Windows server 2003,Windows Vista,Windows server 2008,Windows 7以及WOW64在Windows 64位版本(XP / 2003 / Vista / 2008/7/2008 R2)上的32位环境。

我刚刚遇到了这个问题,并建议rebase msys-1.0.dll是造成这个问题。

具体来说,我使用了ReBase.exe工具:

 C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\x64\ReBase.Exe 

这是微软平台sdk v7.1(也许还有其他版本)的一部分。

采取dll的备份,然后在平台sdk命令提示符下尝试这个命令行:

 rebase -b 0x30000000 /path/to/msys-1.0.dll 

这解决了我的问题。

为了提高兴趣,我推荐的虚拟内存设置设置为3GB左右,实际分配的虚拟内存为6GB。

我正在使用eclipse,并在Windows 8上使用MinGW + Yagarto。重新启动没有做任何事情。

我通过扩展我的虚拟内存解决了这个问题,最初设置为896Mb,不在3000Mb,并且工作正常。

这个问题可以通过改变gcc.exe的兼容模式(或者make的任何名字)到Windows XP来解决(在属性 – >兼容性中)。但是,脚本必须以管理员身份执行,以避免在调用gcc.exe时多次确认