Подскажите где ошибка

  • Автор темы -
  • Дата начала

Гость
#1
Писал программу на си, компилятор выдаёт ошибки. Система Linux Ubuntu, компилятор gcc. Программа для вычисления простых чисел.
Программа:
<!--shcode--><pre><code class='c'>#include <stdio.h>
#include <math.h>
#define true 1
#define false 0
int prv(int min, int max)
{
int x,s,t;
float d;
s=false;
if (max>3){
for (x=min; x<=max; x++)
{
for (d=2; (d<=sqrt(x))||(!(s)); d++)
{
if (s)
s=false;
t=d;
if (x%t==0)
s=true;
}
if (s)
printf(" %d", x);
}
return 0;
}
else
return 1;
}

int main()
{
prv(1,100);
}[/CODE]
Ошибки:
Код:
maksim@maksim-desktop:~/Программы/Си/Простые числа$ gcc main.c
/tmp/ccorImLC.o: In function `prv':
main.c:(.text+0x94): undefined reference to `sqrt'
collect2: ld returned 1 exit status
 

Гость
#3
это уже ясно, а как исправить? Как правильно вычислить квадратный корень??
 
A

Anthony

Гость
#5
Ошибки:
Код:
maksim@maksim-desktop:~/Программы/Си/Простые числа$ gcc main.c
/tmp/ccorImLC.o: In function `prv':
main.c:(.text+0x94): undefined reference to `sqrt'
collect2: ld returned 1 exit status
ИМХО, это ошибка линковки. Нужно добавить линк к библиотеке, где содержиться sqrt.
Например, так: gcc main.c -Wl,-lm