Partager via


Erreur irrécupérable C1076

limite du compilateur : la limite du tas interne a été atteinte ; utilisez /Zm pour spécifier une limite plus élevée

Cette erreur peut être provoquée par un trop grand nombre de symboles, ou d'instanciations de modèles. À compter de Visual Studio 2015, ce message peut provenir de la pression de la mémoire virtuelle Windows causée par un trop grand nombre de processus de génération parallèles. Dans ce cas, la recommandation d’utiliser l’option /Zm doit être ignorée, sauf si vous utilisez une #pragma hdrstop directive.

Pour corriger cette erreur :

  1. Si votre en-tête précompilé utilise une #pragma hdrstop directive, utilisez l’option /Zm pour définir la limite de mémoire du compilateur sur la valeur spécifiée dans le message d’erreur C3859 . Pour plus d’informations sur la définition de cette valeur dans Visual Studio, consultez la section Remarques dans /Zm (Spécifier la limite d’allocation de mémoire d’en-tête précompilée).

  2. Envisagez de réduire le nombre de processus parallèles spécifiés à l’aide de l’option /maxcpucount à MSBUILD.EXE conjointement avec l’option /MP sur CL.EXE. Pour plus d’informations, consultez problèmes et recommandations de l’en-tête précompilé (PCH).

  3. Si vous utilisez des compilateurs hébergés 32 bits sur un système d'exploitation 64 bits, utilisez les compilateurs hébergés 64 bits à la place. Pour plus d’informations, consultez Guide pratique pour activer un ensemble d’outils Visual C++ 64 bits sur la ligne de commande.

  4. Éliminez les fichiers include superflus.

  5. Éliminez les variables globales non nécessaires, par exemple en allouant la mémoire de façon dynamique au lieu de déclarer un grand tableau.

  6. Éliminez les déclarations non utilisées.

Si C1076 se produit immédiatement après le démarrage de la build, la valeur spécifiée pour /Zm est probablement trop élevée pour votre programme. Réduisez la valeur /Zm .