Fatal Error C1076


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at Fatal Error C1076.

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

This error can be caused by too many symbols, or too many template instantiations.

To resolve this error:

  1. Use the /Zm option to set the compiler memory limit to the value specified in the C3859 error message. For more information that includes how to set this value in Visual Studio, see the Remarks section in /Zm (Specify Precompiled Header Memory Allocation Limit).

  2. If you are using the 32-bit hosted compilers on a 64-bit operating system, use the 64-bit hosted compilers instead. For more information, see How to: Enable a 64-Bit Visual C++ Toolset on the Command Line.

  3. Eliminate unnecessary include files.

  4. Eliminate unnecessary global variables—for example, by allocating memory dynamically instead of declaring a large array.

  5. Eliminate unused declarations.

  6. Split large functions into smaller functions.

  7. Split large classes into smaller classes.

  8. Split the current file into smaller files.

If C1076 occurs immediately after the build starts, the value specified for /Zm is probably too high for your program. Reduce the /Zm value.