Folgender Source lässt sich unter Linux nicht Compillieren.
-
Folgender Source Code lässt sich unter Linux nicht Compillieren.
Hier ist nun der böse Source Code
#include <stdio.h> #include <math.h> int main() { int zahl; double wurzel; printf("Bitte Tippsle eine Zahl ein: \n"); scanf("%i",&zahl); wurzel=Sqrt(zahl); printf("Deine Zahl ist: %i\n\nWurzel ist: %i\n\n",zahl,wurzel); if(zahl==0 || zahl==1) { printf("Dies ist keine Primzahl !\n"); } return 0; }
Hier ist der Compillierungsfehler:
desktop:~/Desktop/Programmierung/Linux/Hallo Welt$ gcc -o prim main.c /tmp/ccElPuE2.o: In function `main':main.c:(.text+0x42): undefined reference to `Sqrt' collect2: ld gab 1 als Ende-Status zurück
Gruss Beitrag
-
Du benutzt die math library.
Die muss man extra dazulinken:gcc -o prim main.c [b]-lm[/b]
-
Klar
was heisst da -lm eigenlicht muss ich das immer hinzufügen wenn ich noch andere header dabei hab ??
-
Bei den standard Headern musst du das nur bei <math.h> machen.
(frag mich nicht warum)
-l ist die option um Librarys hinzuzulinken
und m ist der Name der Library.
-
Aber selbst mit -lm wirst Du den selben Fehler bekommen, da die gewünschte Funktion sqrt und nicht Sqrt heisst. C macht einen unterschied zwischen Groß- und Kleinschreibung.