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.


Anmelden zum Antworten