读书人

fatal error C1076编译器堆内存有关问

发布时间: 2012-02-09 18:22:27 作者: rapoo

fatal error C1076编译器堆内存问题?
在编译一文件的时候出现以下错误:

fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit

我查了下以往的帖子说

在project-settings-C/C++下面Project Options里输入/Zm2000或者小一点的数就可以了

但我照着改了下 又出现
fatal error C1063:
Error executing cl.exe.

不知道是什么情况,望前辈们指点指点 谢谢


[解决办法]
/Zmnumber 为预编译头确定编译器的内存分配限制。number 是比例因子,其默认值为 100,指定分配 50MB 内存。number 的最大值为 2000。下表说明 number 如何修改内存分配:

number 内存分配
10 5.0 MB
100 50 MB
200 100 MB
1000 500 MB
2000 1000 MB

在早期的 Visual C++ 版本中,编译器使用了大量的离散堆,每个堆都有一定的限制。编译器现在可以根据需要使堆动态增大,只要求分配给预编译头的内存的大小固定不变。只有在极少数涉及非常大或非常复杂的程序的情况下,才会导致超出预编译头的堆大小限制。如果程序超过这些限制,请使用 /Zm 缩放所有限制的总大小。

读书人网 >C++

热点推荐