gcc sqrt функциональная ошибка?

Следующая программа не может скомпилировать в gcc. Но это компилирует OK с g ++ и MSC ++ с .c расширение.

#include <math.h>
#include <stdio.h>

int main()
{
  double t = 10;
  double t2 = 200;

  printf("%lf\n", sqrt(t*t2));

  return 0;
}

Моей системой является CentOS, информация о версии.

> gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Информация об ошибке:

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

Действительно ли это - ошибка?

Кто-либо может сделать тест для меня?

5
задан Chip Uni 30 December 2009 в 18:29
поделиться

3 ответа

Вы связали математическую библиотеку?

gcc -lm test.c -o test 
19
ответ дан 18 December 2019 в 06:02
поделиться

Добавьте математическую библиотеку с флагом -lm

> gcc test.c -lm
2
ответ дан 18 December 2019 в 06:02
поделиться

Попробуйте gcc -lm test.c -o test

Для gcc, вам нужно сказать ему, чтобы он связал математическую библиотеку, добавив -lm. на твой звонок.

2
ответ дан 18 December 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: