Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436819
  • 博文数量: 89
  • 博客积分: 2713
  • 博客等级: 少校
  • 技术积分: 938
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-18 21:19
个人简介

为了成为自由自在的人而奋斗!

文章分类

全部博文(89)

文章存档

2016年(5)

2015年(9)

2014年(2)

2013年(10)

2012年(1)

2011年(30)

2010年(32)

分类:

2010-10-23 20:12:50

最近安装了windows7, 又由于工作需要安装了cygwin,原来在xp下安装了,配置一下就ok了,但是,这次使用win7下的cygwin出现了一个问题:
 
提示:***couldn't allocate cygwin heap
上网就查到了解决方案,以下是摘录自:http://blog.sina.com.cn/s/blog_49ad960501000aqk.html
 
 最近在编译一些较大的软件包时经常会出现一些couldn't allocate heap的错误,一会是gcc.exe,一会是make.exe,一会是bash...不过我发现这些错误通常只有重复执行make多几次,最终都会通过.
 
我猜想这可能是因为heap size设置太小的原因造成的. 而多重复几次可以成功的原因是因为这个makefile牵涉到许多次的编译以及链接工作,而其中的heap没有得到很好的释放,结果积累下来就超过了所设置的heap大小.而重复执行时,之前在heap size没超过之前编译成功的文件已不需要继续编译或链接,这样不再占用heap size,从而可以继续编译以下的内容,所以等效来看只是将一个需要大heap的工作分解成几个占用小heap的工作.但是当单个不再可分解的工作所需的heap size就超过了限制估计是无法通过这种方法来解决的.
 
那如何能够增加cygwin的heap尺寸呢?
尝试1:
Cygwin
程序缺省可以分配的内存不超过384
MB(program+data)。多数情况下不需要修改这个限制。然而,如果需要更多实际或虚拟内存,应该修改注册表的
HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER区段。田家一个DWORD键heap_chunk_in_mb并把它的值设为
需要的内存限制,单位是十进制MB。也可以用cygwin中的regtool完成该设置。例子如下:
regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024
regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin
 
 
 根据最后的2条命令就解决问题了。。。,
 
 
 
阅读(5168) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-10-26 19:02:48

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com