Condividi tramite


Errore irreversibile C1076

limite del compilatore: raggiunto limite interno dell'heap. Utilizzare /Zm per specificare un limite maggiore

Questo errore può essere causato da un numero eccessivo di simboli o di creazioni di istanza di modello. A partire da Visual Studio 2015, questo messaggio può causare una pressione eccessiva della memoria virtuale di Windows causata da troppi processi di compilazione paralleli. In questo caso, la raccomandazione di usare l'opzione /Zm deve essere ignorata a meno che non si usi una #pragma hdrstop direttiva.

Per risolvere questo errore:

  1. Se l'intestazione precompilata usa una #pragma hdrstop direttiva , usare l'opzione /Zm per impostare il limite di memoria del compilatore sul valore specificato nel messaggio di errore C3859 . Per altre informazioni su come impostare questo valore in Visual Studio, vedere la sezione Osservazioni in /Zm (Specifica limite di allocazione memoria intestazione precompilata).

  2. Valutare la possibilità di ridurre il numero di processi paralleli specificati usando l'opzione /maxcpucount per MSBUILD.EXE insieme all'opzione /MP a CL.EXE. Per altre informazioni, vedere Problemi di intestazione precompilata (PCH) e consigli.

  3. Se si utilizzano i compilatori ospitati a 32 bit in un sistema operativo a 64 bit, utilizzare i compilatori ospitati a 64 bit. Per altre informazioni, vedere Procedura: Abilitare un set di strumenti visual C++ a 64 bit nella riga di comando.

  4. Eliminare i file di inclusione non necessari.

  5. Eliminare le variabili globali non necessarie, ad esempio allocando memoria in modo dinamico anziché dichiarare una matrice di grandi dimensioni.

  6. Eliminare le dichiarazioni inutilizzate.

Se C1076 si verifica immediatamente dopo l'avvio della compilazione, il valore specificato per /Zm è probabilmente troppo elevato per il programma. Ridurre il valore /Zm .