Problem mit sqrt()
-
Guten Tag!
Ich wollte in enem Program Quadratwurzel berechnen. Da es nicht ging, habe es in ein File ausprogrammiert und dort getestet.. geht nicht!
Hier ist die Quellcode :#include <math.h> int main(){ double zahl = 9; double erg = sqrt(zahl); return 0; }
und die Fehlermeldung lautret:
/tmp/cc85wG0u.o(.text+0x36): In function `main': : undefined reference to `sqrt' collect2: ld gab 1 als Ende-Status zurück
Was ist daran falsch? Übersehe ich was oder ?
-
Der Code ist soweit nicht falsch... Wie hast du den Compiler aufgerufen?
-
Hallo!
Ich habe unter linux olgendes eingegeben:
gcc -o teiler teiler.c
Aber, das Problem ist, das mit genau diesem Befehl andere Quelccodes übersetzt werden, diese auch, wenn ich sqrt() ausklammere...
Mfg, herrlado
-
Du musst die math library noch mit einlinken.
gcc -o teiler teiler.c -lm
-
Ok, Danke!
Aber muss ich jetzt immer wieder -lm anhängen ? oder lässt sich das beseitigen?mfg, herrlado!
-
Das war die Kompileoption vom GCC für MAthematische Optionen? Mußt Du drin lassen.
-
-lm bedeutet, dass der Linker die Math-Libraries mitlinken muss. Die Funktionen aus math.h befinden sich nämlich in dieser Lib. Deshalb musst du immer mit -lm kompilieren, wenn du math.h benutzt.
-
Ok, alles klar!
Vielen Dank für eure Bemühungen!Grüsse!