第一次遇到fatal error C1076,原来是栈太小

前两天引入一个COM组件的时候,产生这样一个编译错误fatal error C1076,网上一搜,原来是这样:

 

编译错误

  fatal error C1076: 编译器限制,达到内部堆限制;使用/Zm指定更高的限制。


编译器选项 /Zmnumber 

  在“项目属性”的命令行下,添加/Zmnumber,其中number是自己想要指定的比例系数; 
  可以指定的值是:10,100,200,1000,2000,对应的memory alloction是5.0M,50MB,100MB,500MB,1000MB; 
  
  在过去的VC版本中,编译器使用的堆内存是离散的,每块都有上限;
  现在编译器是按照需要动态来分配堆内存的;
  但仍然给预编译头文件以有限固定堆内存的大小;如果不够,会给出C1076错误;
  这只是在写一些非常复杂的程序时才出现;


解决方法

  进入工程->点右键->工程属性->c++-〉命令行,在最下边输入/Zm200,点确定。

你可能感兴趣的:(VC++,IDE)