ubuntuusers.de

Anjuta: "undefined reference to `sqrt' "

Status: Gelöst | Ubuntu-Version: Ubuntu 6.10 (Edgy Eft)
Antworten |

wildwaldbiberhirte

Avatar von wildwaldbiberhirte

Anmeldungsdatum:
29. Dezember 2006

Beiträge: 309

Wohnort: München

Hallo!

Ich bin ziemlicher Linux-Neuling und möchte von Visual-Studio auf Anjuta umsteigen (Maschinenbaustudent, Fach Softwareengineering, also nur C-Programmieren).

Habe folgendes Problem (als Beispiel dargestellt, selbes auch mit der pow-Funktion):

#include <stdio.h>
#include <math.h>
int main(void)
{
	float ftest=0.0f;
	

	printf("ftest\n");
	scanf(" %f", &ftest);
	
	ftest=sqrt(ftest);
	
	printf("\nftest: %f",ftest);
	
	return 0;
}

Das ganze wird wunderbar Kompiliert, aber beim Builden kommt folgende Fehlermeldung:

undefined reference to sqrtf' Interessanterweise funktioniert es, wenn ich keine Variable, sondern eine Zahl in die sqrt-Funktion schreibe. Ich bitte um Hilfe, vielleicht hatte schon mal jemand das Problem und hat es gelöst, ist echt nervig wegen sowas Windows hochfahren zu müssen... Danke im Vorraus!

tenco

Anmeldungsdatum:
23. Oktober 2005

Beiträge: 231

man sqrt:

       Link with -lm.

umarmung Team-Icon

Avatar von umarmung

Anmeldungsdatum:
26. Oktober 2004

Beiträge: 5632

Hi.

Du musst dem gcc noch die Option -lm mitgeben. Wo du das genau in der neuen Anjuta Version einstellst, weiß ich aber nicht.

Holger

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

wildwaldbiberhirte hat geschrieben:

Interessanterweise funktioniert es, wenn ich keine Variable, sondern eine Zahl in die sqrt-Funktion schreibe.

Um das Mysterium noch zu lösen: Wenn da eine konstante Zahl steht und Optimierung eingeschaltet ist, wird diese Funktion schon zur Übersetzungszeit ausgewertet und die Mathe-Bibliothek muss dann nicht eingebunden werden.

wildwaldbiberhirte

(Themenstarter)
Avatar von wildwaldbiberhirte

Anmeldungsdatum:
29. Dezember 2006

Beiträge: 309

Wohnort: München

Das klingt schon mal gut!

Vielen Dank für die schnellen Antworten!
(Dazu (schon wieder) eine Frage: Wie kann ich das Manual zur sqrt-Funktion (etc.) aufrufen?)

Aber ich habe keine Ahnung, wie man das Verlinken in der Anjuta Version 2.0.2 (Paketquellen) macht.
Ich finde auch nur Anleitungen, wie mans in der 1.x macht.

Arbeitet irgendjemand mit der 2.x Version und hat das schon gemacht?
Wäre wirklich eine große Hilfe.

wildwaldbiberhirte

(Themenstarter)
Avatar von wildwaldbiberhirte

Anmeldungsdatum:
29. Dezember 2006

Beiträge: 309

Wohnort: München

Also: Falls jemand das Problem hat:

In den Project-Tree gehen, rechte Maustaste auf Projekt, Properties klicken, -lm in den Linker Flags eingeben, fertig.

tenco

Anmeldungsdatum:
23. Oktober 2005

Beiträge: 231

wildwaldbiberhirte hat geschrieben:

Das klingt schon mal gut!

Vielen Dank für die schnellen Antworten!
(Dazu (schon wieder) eine Frage: Wie kann ich das Manual zur sqrt-Funktion (etc.) aufrufen?)

Das ist einfach. Du machst ein Terminal auf und gibst "man sqrt" ein. Das Paket "manpages-dev" sollte installiert sein. Eventuell ist noch das Paket "glibc-doc" interessant.

Als Student solltest du aber genug Zeit in deine Fächer investieren, um sowas selbst rauszufinden. :evil:

HTH
Tenco

wildwaldbiberhirte

(Themenstarter)
Avatar von wildwaldbiberhirte

Anmeldungsdatum:
29. Dezember 2006

Beiträge: 309

Wohnort: München

Danke für die Hilfe, genau das, was ich wissen wollte.

Aber zu der Anschuldigung, oder was auch immer das sein soll:

-Ich bin Maschinenbaustudent (genauer gesagt Luft-und Raumfahrttechnik), nicht Software-Engineering Student.

-SE wird bei uns komplett mit Visual Studio gemacht, bekommen wir auch umsonst.

-Ich habe kein Fach, dass "Linux" oder "Systemumstieg auf Linux" oder ähnlich heißt. Dafür viele andere Fächer, in denen ich auch noch bald Prüfungen schreibe. Dazu bin ich quasi Noob und verbringe schon so ziemlich viel (eigentlich zu viel) Zeit damit, mein System zu optimieren. Wenn du daneben noch mehr Zeit findest und dich auch noch motivieren könntest, verrat mir deinen Trick.

-Es war kein akutes Problem, nur eine nettes Gimmik, daher habe ich mich nicht näher damit befasst. Ich bitte um Entschuldigung.

Finde den Kommentar daher unnötig.
Ich verstehe zwar, dass dir dieses Problem wohl absolut minderwertig vorkommt, aber wenn du Hilfestellungen auf dieser niedrigen Ebene für unnötig hältst, musst du sie ja nicht leisten.

Aber okay, nicht dass das jetzt eine Grundsatzdiskussion wird, mein Problem ist vollkommen gelöst, und dafür bin ich sehr dankbar.

Mit freundlichen Grüßen, Wildwaldbiberhirte.

perdix

Avatar von perdix

Anmeldungsdatum:
27. Mai 2008

Beiträge: 12

Oh, Mann! Da schlägt man sich stundenlang mit Problemen herum... und wo findet man die Lösung: Auf der Seite, die man sowieso täglich besucht =)

Antworten |