Partilhar via


Erro fatal C1076

limite do compilador: limite do heap interno atingido; use /Zm para especificar um limite maior

Esse erro pode ser causado por muitos símbolos ou por muitas instanciações do modelo. A partir do Visual Studio 2015, essa mensagem pode resultar da pressão de memória virtual do Windows causada pela presença de muitos processos de build paralelos. Nesse caso, a recomendação para usar a opção /Zm deve ser ignorada, a menos que você esteja usando uma diretiva #pragma hdrstop.

Para resolver esse erro:

  1. Se o seu cabeçalho pré-compilado usar uma diretiva #pragma hdrstop, use a opção /Zm para definir o limite de memória do compilador com o valor especificado na mensagem de erro C3859. Para obter mais informações que incluem como definir esse valor no Visual Studio, consulte a seção de Comentários em /Zm (Especificar limite de alocação de memória de cabeçalho pré-compilado).

  2. Considere reduzir o número de processos paralelos especificados usando a opção /maxcpucount para o MSBUILD.EXE em conjunto com a opção /MP para o CL.EXE. Para obter mais informações, confira Problemas e recomendações de PCH (cabeçalho pré-compilado).

  3. Se você estiver usando os compiladores hospedados de 32 bits em um sistema operacional de 64 bits, use os compiladores hospedados de 64 bits. Para obter mais informações, confira Como habilitar um Conjunto de Ferramentas Visual C++ de 64 bits na linha de comando.

  4. Elimine arquivos de inclusão desnecessários.

  5. Elimine variáveis globais desnecessárias, por exemplo, alocando memória dinamicamente em vez de declarar uma matriz grande.

  6. Elimine declarações não usadas.

Se o C1076 ocorrer imediatamente após o início da compilação, o valor especificado para /Zm provavelmente é muito alto para o seu programa. Reduza o valor de /Zm.