|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer|
/Zm (Specify Precompiled Header Memory Allocation Limit)
Determines the amount of memory that the compiler allocates to construct precompiled headers.
In earlier versions of Visual C++, the compiler used several discrete heaps, and each had a finite limit. Currently, the compiler dynamically grows the heaps as necessary up to a total heap size limit, and requires a fixed-size buffer only to construct precompiled headers. Consequently, the /Zm compiler option is rarely necessary.
If the compiler runs out of heap space and emits the C1060 error message when you use the /Zm compiler option, you might have reserved too much memory. Consider removing the /Zm option. If the compiler emits the C1076 error message, an accompanying C3859 message specifies the factor argument that you should use when you recompile your program with the /Zm compiler option.
The following table shows how the factor argument affects the memory allocation limit if you assume the size of the default precompiled header buffer is 75 MB.
Value of factor
Memory allocation limit
Other Ways to Set the Memory Allocation Limit
To set the /Zm compiler option in the Visual Studio development environment
Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.
Click the C/C++ folder.
Click the Command Line property page.
Type the compiler option in the Additional Options box.
To set the /Zm compiler option programmatically