Почему я получаю сообщение об ошибке «неопределенная ссылка на sqrt», хотя я включаю заголовок math.h? [дубликат]

Здесь уже есть ответ на этот вопрос:

Я очень новичок в C, и у меня есть этот код:

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

Но когда я скомпилирую это с помощью :

gcc test.c -o test

, я получаю такую ​​ошибку:

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

Почему это происходит? Разве sqrt()нет в заголовочном файле math.h? Я получаю ту же ошибку с coshи другими тригонометрическими функциями. Почему?

98
задан Wolf 7 February 2018 в 09:22
поделиться