Fórum Ubuntu CZ/SK
Ostatní => Archiv => Téma založeno: 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.
-
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?
#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...
-
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
-
Díky moc přepínač -lm to vyřešil.
-
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