Partilhar via


Erro fatal C1076

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

Observações

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

Para resolver este erro:

  1. Se o cabeçalho pré-compilado usa uma #pragma hdrstop diretiva, use a opção /Zm para definir o limite de memória do compilador para 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 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 MSBUILD.EXE em conjunto com a opção /MP para CL.EXE. Para obter mais informações, consulte Problemas e recomendações de cabeçalho pré-compilado (PCH).

  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, consulte Como habilitar um conjunto de ferramentas do 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 as declarações não utilizadas.

Se 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 /Zm .