Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det gick inte att skapa virtuellt minne för PCH
Meddelandet har någon av följande anmärkningar:
Systemet returnerade kodfelkoden: OS-felmeddelande
PCH: Adressen är inte en multipel av systemets allokeringskornighet
PCH: Segmentet har inte tidigare reserverats
PCH: Commit-storleken är för stor
PCH: Det går inte att allokera minne i filkartan
PCH: Uttömd segmentlista innan du checkar in alla byte
PCH: Oväntad slut på segmentlistan när du försöker frigöra
PCH: Ska inte slå på en filkarta i decommit-fallet
PCH: Ogiltigt segment
PCH: Kartstorleken är för stor
PCH: Kan inte mappa fil: minnet är redan allokerat
PCH: Filkarta är redan på plats
PCH: Det går inte att hämta det begärda minnesblocket
Överväg att använda /Fp för att tillåta kompilatorn att reservera minnet tidigt
Anmärkningar
Det finns inte tillräckligt med virtuellt minne allokerat för ditt förkompilerade huvud (PCH). Om den förkompilerade rubriken använder ett explicit #pragma hdrstop direktiv använder du kompilatorflaggan /Zm för att ange ett större värde för den förkompilerade huvudfilen. I annat fall bör du överväga att minska antalet parallella kompileringsprocesser i bygget. Mer information finns i /Zm (Ange förkompilerad minnesallokeringsgräns för huvud).
Den här diagnostiken visas främst i två scenarier:
Det första scenariot är att systemet är överbelastat med flera /Yu kompileringsbegäranden samtidigt. Om du anger den maximala startstorleken för virtuellt minne löser det här problemet vanligtvis.
Det andra scenariot är när Windows-inläsaren matar in en DLL i processen vid start. Den inmatade DLL:en kan allokera minne som står i konflikt med var PCH:en måste finnas. Till exempel msbuild.exe injicerar FileTracker.dll i varje CL.exe process vid uppstart. I det här scenariot säkerställer flaggan /Fp (name .pch file) att minnet för PCH allokeras så tidigt som möjligt i CL.exe processen innan inmatade DLL:er försöker uppta adressutrymmet. Dessa fel kan vara tillfälliga eftersom ASLR (Windows Address Space Layout Randomization) allokerar minne på olika adresser mellan olika processanrop. Utan /Fpkan inte minne för PCH allokeras förrän kompilatorn hittar huvudfilen #include som anges i /Yu kommandoradsalternativet #pragma hdrstopeller . Vid den här tiden är det mycket mer troligt att det minne som krävs av PCH redan är reserverat.