C · Essencial · Inglês · Técnico
undefined reference
Erro do linker que indica que o programa usa uma função ou variável cuja definição não foi encontrada em nenhum arquivo objeto ou biblioteca na hora de ligar.
Onde usar
É o erro clássico de esquecer um .c na linha do gcc, de não passar -lm para usar sqrt no Linux ou de errar a ordem das bibliotecas. Vem depois da compilação, não durante ela.
Em código
#include <math.h>
#include <stdio.h>
int main(void) {
printf("%f\n", sqrt(getchar()));
}
// gcc a.c -> undefined reference
// gcc a.c -lm -> okExemplos
I got an undefined reference to sqrt; I forgot -lm.
Deu undefined reference para sqrt; esqueci o -lm.
It compiles fine, but the link step fails with an undefined reference.
Compila bem, mas a ligação falha com um undefined reference.
Cuidado
Procurar o erro como se fosse de sintaxe; ele indica falta de definição na ligação, quase sempre resolvida na linha de comando ou no Makefile.
Sinônimos
símbolo não resolvido