Dela via


Allvarligt fel C1076

kompilatorgräns: den interna heapgränsen har nåtts; använd /Zm för att ange en högre gräns

Anmärkningar

Det här felet kan orsakas av för många symboler eller för många instansiering av mallar. Från och med Visual Studio 2015 kan det här meddelandet bero på ett virtuellt Minnestryck i Windows som orsakas av för många parallella byggprocesser. I det här fallet bör rekommendationen att använda alternativet /Zm ignoreras om du inte använder ett #pragma hdrstop direktiv.

Gör så här för att lösa problemet:

  1. Om den förkompilerade rubriken använder ett #pragma hdrstop direktiv använder du alternativet /Zm för att ange minnesgränsen för kompilatorn till det värde som anges i felmeddelandet C3859 . Mer information som innehåller hur du anger det här värdet i Visual Studio finns i avsnittet Anmärkningar i /Zm (Ange förkompilerad minnesallokeringsgräns för sidhuvud).

  2. Överväg att minska antalet parallella processer som anges med alternativet /maxcpucount för att MSBUILD.EXE tillsammans med alternativet /MP för att CL.EXE. Mer information finns i Problem med och rekommendationer för förkompilerat sidhuvud (PCH).

  3. Om du använder 32-bitars värdbaserade kompilatorer i ett 64-bitars operativsystem använder du 64-bitars värdbaserade kompilatorer i stället. Mer information finns i Så här aktiverar du en 64-bitars visualiseringsuppsättning för C++ på kommandoraden.

  4. Eliminera onödiga inkluderingsfiler.

  5. Eliminera onödiga globala variabler, till exempel genom att allokera minne dynamiskt i stället för att deklarera en stor matris.

  6. Eliminera oanvända deklarationer.

Om C1076 inträffar omedelbart efter att bygget startar är det angivna värdet för /Zm förmodligen för högt för ditt program. Minska /Zm-värdet .