Hi Leute!!!
kann mir jemand sagen warum mein Compiler diesen Fehler rausscheisst???
cc test.c
/tmp/cc2JH2rE.o(.text+0x16): In function `wurzel':
: undefined reference to `sqrt'
hier der Quell-Code:
------------------------------------------
#include <stdio.h>
#include <math.h>
double wurzel(int i)
{
return sqrt(i);
}
main ()
{
wurzel(9);
}
------------------------------------------
Das Prog soll Wurzel aus einer Zahl berechnen. Normalerweise ist ja sqrt() in math.h drin. Was will der Compiler noch von mir???
Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.
Fehler im Quellcode???
Moderator: Moderatoren
Re: Fehler im Quellcode???
Anonymous hat geschrieben:Hi Leute!!!
kann mir jemand sagen warum mein Compiler diesen Fehler rausscheisst???
cc test.c
/tmp/cc2JH2rE.o(.text+0x16): In function `wurzel':
: undefined reference to `sqrt'
hier der Quell-Code:
------------------------------------------
#include <stdio.h>
#include <math.h>
double wurzel(int i)
{
return sqrt(i);
}
main ()
{
wurzel(9);
}
------------------------------------------
Das Prog soll Wurzel aus einer Zahl berechnen. Normalerweise ist ja sqrt() in math.h drin. Was will der Compiler noch von mir???
Hi,
wozu brauchst Du denn die Funktion Wurzel überhaupt ?
Ruf doch im Hauptprogramm direkt die Funktion sqrt auf..
Dein Problem hier ist, daß die sqrt falsch aufrufst, sqrt will als Argument ein double, Du übergibst aber einen Integer.
Die einfachste Variante für Dich wäre wohl ein cast auf double, also sowas
double wurzel(int i)
{
return sqrt( (double) i );
}
dann geht es...
oder direkt im Hauptprogramm mit
double ergebnis;
ergebnis = sqrt ( 9.0 );
ach ja, ausgeben solltest du das Ergebnis vielleicht auch noch...
printf(" Wurzel aus 9.0 ist %5.3f", ergebnis);
Gruß Hardy
Hi,
hier mal ein komplettes Beispiel:
#include <stdio.h>
#include <math.h>
double wurzel(int i)
{
return sqrt( (double) i);
}
int main ()
{
double ergebnis;
ergebnis = wurzel(9);
printf("Wurzel 9 ist: %5.2f \n", ergebnis);
return 0;
}
Das Ganze z.b. in die Datei demo.c schreiben.
Übersetzen unter Linux mit
gcc -o demo -lm demo.c
dann mit ./demo ausführen
Ausgabe hier ist dann:
Wurzel 9 ist: 3.00
Gruß Hardy
hier mal ein komplettes Beispiel:
#include <stdio.h>
#include <math.h>
double wurzel(int i)
{
return sqrt( (double) i);
}
int main ()
{
double ergebnis;
ergebnis = wurzel(9);
printf("Wurzel 9 ist: %5.2f \n", ergebnis);
return 0;
}
Das Ganze z.b. in die Datei demo.c schreiben.
Übersetzen unter Linux mit
gcc -o demo -lm demo.c
dann mit ./demo ausführen
Ausgabe hier ist dann:
Wurzel 9 ist: 3.00
Gruß Hardy