错误 C1076

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

此错误可能是由过多符号或过多模板实例化引起的。 从 Visual Studio 2015 开始,此消息可能是由过多并行生成进程导致的 Windows 虚拟内存压力造成的。 在这种情况下,除非使用 #pragma hdrstop 指令,否则应忽略使用 /Zm 选项的建议

解决此问题的方法是:

  1. 如果预编译标头使用 #pragma hdrstop 指令,请使用 /Zm 选项将编译器内存限制设置为 C3859 错误消息中指定的值。 有关如何在 Visual Studio 中设置此值的详细信息,请参阅/Zm(指定预编译头内存分配限制)中的备注部分。

  2. 请考虑通过结合使用 MSBUILD.EXE 的 /maxcpucount 选项和 CL.EXE 的 /MP 选项来减少指定的并行进程数。 有关详细信息,请参阅预编译标头 (PCH) 问题和建议

  3. 如果正在 64 位操作系统中使用 32 位托管编译器,请改用 64 位托管编译器。 有关详细信息,请参阅如何:在命令行上启用 64 位 Visual C++ 工具集

  4. 消除不需要的包含文件。

  5. 消除不需要的全局变量,例如,动态分配内存而不是声明一个大数组。

  6. 消除未使用的声明。

如果在生成开始后立即发生 C1076,则说明为 /Zm 指定的值对程序而言可能太高。 减小 /Zm 值