Здесь уже есть ответ на этот вопрос:
Я очень новичок в 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
и другими тригонометрическими функциями. Почему?