Fórum Ubuntu CZ/SK

Ostatní => Archiv => Téma založeno: Krchy 11 Listopadu 2007, 23:34:12

Název: gcc math.h [vyřešeno]
Přispěvatel: Krchy 11 Listopadu 2007, 23:34:12
Zdravim, pokoušel jsem se přeložit jednoduchý program volající funkci pow(). Překladač mi hlásí, že funkci nezná. Zde je zdrojový kód:

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

  int main(void)
  {
    double x = 10.0, y = 0.0;

    do {
      printf("%f\n", pow(x, y));
      y++;
    } while(y<11.0);

    return 0;
  }

A tady chybova hláška:

/tmp/cc4EPUrh.o: In function `main':
x.c:(.text+0x2d): undefined reference to `pow'
collect2: ld returned 1 exit status

Nevíte někdo v čem je chyba? Předem díky.
Název: Re: gcc math.h
Přispěvatel: existpierre 12 Listopadu 2007, 00:22:24
ja som to skompiloval v NetBeans a slo to v poho, kod je spravny, bude to asi v nastaveniach, mas tam vobec ten hlavickovy subor?



Kód: [Vybrat]
#include <iostream>
#include <math.h>

int main(int argc, char** argv) {
 
   double x = 10.0, y = 0.0;

    do {
      printf("%f\n", pow(x, y));
      y++;
    } while(y<11.0);
   
   
    return (EXIT_SUCCESS);
}

1.000000
10.000000
100.000000
1000.000000
10000.000000
100000.000000
1000000.000000
10000000.000000
100000000.000000
1000000000.000000
10000000000.000000
[Press Enter to close window]



alebo este skus namiesto #include <math.h> dat #include <math> , ale to neviem ci pomoze...ale viem ze ked dam iostream.h tak mi vypise chybu, kym iostream ide v poho, ale math.h by malo byt spravne...
Název: Re: gcc math.h
Přispěvatel: Tominn 12 Listopadu 2007, 00:51:18
jestli se nepletu a vzpominam si dobre, tak tato chyba byla zpusobena, kdyz se pri prekladu pomoci gcc nepouzil prepinac '-lm', ten je potreba pouzivat pri prekladech zdrojaku, ve kterych jsou pouzivany funkce z hlavickoveho souboru math.h

Název: Re: gcc math.h
Přispěvatel: Krchy 12 Listopadu 2007, 01:19:21
Díky moc přepínač -lm to vyřešil.
Název: Re: gcc math.h
Přispěvatel: Tominn 12 Listopadu 2007, 01:27:33
Dekovat urcite nemusis, alespon si to budes pro priste pamatovat. Tuto stejnou chybu jsem delal i ja, kdyz jsem se ve skole ucil jazyk C. Pro podekovani staci kliknout na applaude ;)

Zatim good luck