Sdílet prostřednictvím


Závažná chyba C1076

Omezení kompilátoru: bylo dosaženo limitu interní haldy; pomocí parametru /Zm nastavte vyšší limit

Tuto chybu může způsobovat příliš mnoho symbolů nebo příliš mnoho instancí šablony. Od sady Visual Studio 2015 může tato zpráva mít za následek tlak na virtuální paměť Windows způsobený příliš mnoha procesy paralelního sestavení. V takovém případě by se mělo doporučení použít možnost /Zm ignorovat, pokud nepoužíváte direktivu #pragma hdrstop .

Vyřešení této chyby:

  1. Pokud předkompilovaná hlavička používá direktivu, použijte možnost /Zm k nastavení limitu paměti kompilátoru na hodnotu zadanou v chybové zprávě C3859.#pragma hdrstop Další informace, které zahrnují nastavení této hodnoty v sadě Visual Studio, najdete v části Poznámky v /Zm (určení limitu přidělení paměti předkompilované hlavičky).

  2. Zvažte snížení počtu paralelních procesů určených pomocí možnosti /maxcpucount , která se má MSBUILD.EXE ve spojení s možností /MP pro CL.EXE. Další informace najdete v tématu Předkompilované hlavičky (PCH) problémy a doporučení.

  3. Pokud používáte 32bitové hostované kompilátory v 64bitovém operačním systému, použijte místo nich 64bitové hostované kompilátory. Další informace naleznete v tématu Postupy: Povolení 64bitové sady nástrojů Visual C++ na příkazovém řádku.

  4. Odstraňte nepotřebné vkládané soubory.

  5. Odstraňte nepotřebné globální proměnné – například dynamickým přidělením paměti namísto deklarování velkého pole.

  6. Odstraňte nepoužité deklarace.

Pokud dojde k C1076 ihned po spuštění sestavení, hodnota zadaná pro /Zm je pravděpodobně příliš vysoká pro váš program. Snižte hodnotu /Zm.