[c] sqrt w gcc

robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

[c] sqrt w gcc

Post autor: robin5hood »

Po wpisaniu ponizszego kodu w Linuxie w gcc i próbie kompilacji wyskakuje ze "sqrt" nie jest zdefiniowane. Nie wiem co mam zrobić.

Kod: Zaznacz cały

#include <stdio.h>
#include <math.h>
 
main()
{
  double  a, b, c,
          delta;
 
  printf(" Podaj wspolczynniki a, b, c < ");
  scanf("%lf %lf %lf", &a, &b, &c);
 
  if ( a == 0 )
    if ( b == 0 )
      if ( c == 0)
        printf(" Rownanie nieoznaczone.
 ");
      else
        printf(" Rownanie nie ma rozwiazania.
");
    else{
      printf(" Rownanie ma jedno");
      printf(" rozwiazanie: %.2f
 ", -c/b);
    }
  else{
    delta = b*b - 4*a*c;
    if ( delta < 0 )
      printf(" Rownanie nie ma rozwiazania.
 ");
    else{
      printf(" Rownanie ma dwa rozwiazania:
 ");
      printf("x1 = %.2f, x2 = %.2f",
             (-b-sqrt(delta))/(2*a),(-b+sqrt(delta))/(2*a));
    }
  }
 
  return 0;
}
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

[c] sqrt w gcc

Post autor: matshadow »

int main()
robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

[c] sqrt w gcc

Post autor: robin5hood »

nic nie dało , już sparwdzałem

taki jest ten błąd:
/tmp/ccLtC2hk.o: In function `main':
kwadratowa.c:(.text+0x13b): undefined reference to `sqrt'
collect2: ld returned 1 exit status
tomalla
Użytkownik
Użytkownik
Posty: 179
Rejestracja: 10 mar 2009, o 15:28
Płeć: Mężczyzna
Lokalizacja: Olsztyn
Podziękował: 2 razy
Pomógł: 29 razy

[c] sqrt w gcc

Post autor: tomalla »

Nie próbowałem ( bo nie korzystam z Linuxa :P ), ale zamiast biblioteki <math.h> skorzystaj z biblioteki <cmath>. Może pomoże ... ?

Druga sprawa ... sprawdź, czy jest zdefiniowana funkcja "pow(zmienna, zmienna)". Jak łatwo można się domyśleć, jest to potęgowanie ... Jeżeli pierwiastka nadal nie będzie, spróbuj tą funkcją, stawiając zamiast stopnia '0.5'.
luka52
Użytkownik
Użytkownik
Posty: 8601
Rejestracja: 1 maja 2006, o 20:54
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 47 razy
Pomógł: 1816 razy

[c] sqrt w gcc

Post autor: luka52 »

Dodaj opcję -lm przy kompilacji.
robin5hood
Użytkownik
Użytkownik
Posty: 1676
Rejestracja: 2 kwie 2007, o 14:43
Płeć: Mężczyzna
Lokalizacja: warszawa
Podziękował: 178 razy
Pomógł: 17 razy

[c] sqrt w gcc

Post autor: robin5hood »

dzięki a co robi to -lm ?
luka52
Użytkownik
Użytkownik
Posty: 8601
Rejestracja: 1 maja 2006, o 20:54
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 47 razy
Pomógł: 1816 razy

[c] sqrt w gcc

Post autor: luka52 »

Mówi linkerowi by dołączył właśnie bibliotekę math.h.
ODPOWIEDZ