Por que estou recebendo o erro "referência indefinida ao sqrt", mesmo que eu inclua o cabeçalho math.h? [duplicado

Esta pergunta já tem uma resposta aqui:

eferência não definida ao sqrt (ou outras funções matemática 4 respostas

Sou muito novo em C e tenho este código:

#include <stdio.h>
#include <math.h>
int main(void)
{
  double x = 0.5;
  double result = sqrt(x);
  printf("The square root of %lf is %lf\n", x, result);
  return 0;
}

Mas quando eu compilar isso com:

gcc test.c -o test

Eu recebo um erro como este:

/tmp/cc58XvyX.o: In function `main':
test.c:(.text+0x2f): undefined reference to `sqrt'
collect2: ld returned 1 exit status

Por que isso acontece? Ésqrt() não está nomath.h arquivo de cabeçalho? Eu recebo o mesmo erro comcosh e outras funções trigonométricas. Por quê

questionAnswers(6)

yourAnswerToTheQuestion