fatal error C1076编译器堆内存问题?

来源:互联网 发布:一年制硕士知乎 编辑:程序博客网 时间:2024/04/30 12:37

 

在编译一文件的时候出现以下错误:
fatal   error   C1076:   compiler   limit   :   internal   heap   limit   reached;   use   /Zm   to   specify   a   higher   limit 

 

具体详细解释:

改成/Zm500

 

/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/C++中Project Opotions里增加 /Zmnumber即可