ubuntuusers.de

Problem mit Funktion in C

Status: Gelöst | Ubuntu-Version: Ubuntu
Antworten |

Tux90

Anmeldungsdatum:
26. November 2006

Beiträge: 180

Hallo,

Ich bin gerade dabei C zu lernen und habe mir dazu ein Buch gekauft. Dort bin ich jetzt bei Funktionen angelangt und es wird ein Beispiel zur Berechnung des Kreisdurchmessers gegeben.
Ich habe den Code übernommen und wollte ihn jetz kompilieren, dann taucht dieser Fehler auf:

/tmp/ccDsZgNp.o: In function `kreis_durchmesser':
test.c:(.text+0x3a): undefined reference to `sqrt'
collect2: ld returned 1 exit status

Der Code der Funktion sieht folgendermaßen aus:

#include <stdio.h>
#include <math.h>

void kreis_durchmesser(float flaeche)
	{
		float d, pi = 3.1415;
		d = sqrt(4 * flaeche / pi);
		printf("Durchmesser des Kreises : %.2f\n",d);
	} 

Danach soll die Funktion dann im main Teil aufgerufen werden, aber ich denke das Problem liegt hier...

Ich weiß nicht, was ich falsch gemacht habe, aber ich hoffe mir kann jemand helfen!

Gruß

radoe2

Anmeldungsdatum:
30. November 2006

Beiträge: 243

Tux90 hat geschrieben:

Hallo,

Ich bin gerade dabei C zu lernen und habe mir dazu ein Buch gekauft. Dort bin ich jetzt bei Funktionen angelangt und es wird ein Beispiel zur Berechnung des Kreisdurchmessers gegeben.
Ich habe den Code übernommen und wollte ihn jetz kompilieren, dann taucht dieser Fehler auf:

/tmp/ccDsZgNp.o: In function `kreis_durchmesser':
test.c:(.text+0x3a): undefined reference to `sqrt'
collect2: ld returned 1 exit status

Du hast nichts falsch gemacht, nur etwas vergessen. Da du Mathematikfunktionen benutzt, musst du gegen die Mathe-Bibliothek libm linken. Füge beim Übsetzen (eigentlich ja beim Linkerlauf, aber ich denke du wirst die beiden Schritte nicht explizit getrennt haben) den Switch -lm hinzu.

Eins noch: PI brauchst du nicht selbst definieren, das steckt als Konstante M_PI bereits in math.h

Antworten |