Erro de compilação - Compilation error
O erro de compilação refere-se a um estado em que um compilador falha em compilar uma parte do código-fonte de um programa de computador , seja devido a erros no código ou, mais incomum, devido a erros no próprio compilador. Uma mensagem de erro de compilação geralmente ajuda os programadores a depurar o código-fonte. Embora as definições de compilação e interpretação possam ser vagas, geralmente os erros de compilação referem-se apenas à compilação estática e não à compilação dinâmica . No entanto, é importante observar que a compilação dinâmica ainda pode tecnicamente ter erros de compilação, embora muitos programadores e fontes possam identificá-los como erros de tempo de execução. A maioria dos compiladores just-in-time , como o mecanismo Javascript V8 , refere-se ambiguamente aos erros de compilação como erros de sintaxe, uma vez que os verificam em tempo de execução .
Exemplos
Erros comuns de compilação C ++
- Identificador não declarado, por exemplo:
doy.cpp: In function `int main()':
doy.cpp:25: `DayOfYear' undeclared (first use this function)
Isso significa que a variável "DayOfYear" está tentando ser usada antes de ser declarada.
- Função comum não declarada, por exemplo:
xyz.cpp: In function `int main()': xyz.cpp:6: `cout' undeclared (first use this function)
Isso significa que o programador provavelmente se esqueceu de incluir iostream .
- Erro de análise, por exemplo:
somefile.cpp:24: parse error before `something'
Isso pode significar que falta um ponto e vírgula no final da instrução anterior.
Erros internos do compilador
Um erro interno do compilador (comumente abreviado como ICE) é um erro que ocorre não devido ao código-fonte errado, mas sim devido a um bug no próprio compilador. Às vezes, eles podem ser contornados fazendo pequenas e insignificantes alterações no código-fonte em torno da linha indicada pelo erro (se essa linha for indicada), mas às vezes alterações maiores devem ser feitas, como refatorar o código, para evitar certas construções. Usar um compilador diferente ou uma versão diferente do compilador pode resolver o problema e ser uma solução aceitável em alguns casos. Quando um erro interno do compilador é alcançado, muitos compiladores não exibem um erro padrão, mas em vez disso exibem uma versão reduzida, com arquivos adicionais anexados, que são fornecidos apenas para erros internos do compilador. Isso é para garantir que o programa não trave ao registrar o erro, o que tornaria a solução do erro quase impossível. Os arquivos adicionais anexados para erros internos do compilador geralmente têm formatos especiais que podem ser salvos, como .dump
para Java . Esses formatos geralmente são mais difíceis de analisar do que os arquivos normais, mas ainda podem ter informações muito úteis para resolver o bug que está causando o travamento.
Exemplo de um erro interno do compilador:
somefile.c:1001: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://bugs.gentoo.org/> for instructions.