Forum: Compiler & IDEs Problem mit math.h


von Tobi (Gast)


Lesenswert?

Hallo,
ich habe ein kleines Problem mit meinen Kompiler :(
Nach einer Aktualisierung meines DS5(Eclipse), was die Kompiler 
einstellungen verworfen hat, kann ich mein Projekt nicht mehr 
kompilieren. Es kommt immer das Problem, dass Funktionen aus der math.h 
nicht gefunden werden (undefined reference to 'sin'). Die Flags für den 
Kompiler lauten:  -lm -std=gnu99 -fgnu89-inline -c -fmessage-length=0
Der Kompiler ist ein GCC cross Kompiler.

Könnt ihr mir weiterhelfen?

MfG
Tobi

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Tobi schrieb:
> Hallo,
> ich habe ein kleines Problem mit meinen Kompiler :(
> Nach einer Aktualisierung meines DS5(Eclipse), was die Kompiler
> einstellungen verworfen hat, kann ich mein Projekt nicht mehr
> kompilieren. Es kommt immer das Problem, dass Funktionen aus der math.h
> nicht gefunden werden

Die Funktionen sind genau genommen nicht in math.h sondern in einer 
Bibliothek, der libm.a oder limb.so oder was auch immer.

> (undefined reference to 'sin'). Die Flags für den
> Kompiler lauten:  -lm [...]

Dem Compiler ist das egal; wichtig ist es bein Linken.

Und die Lib muss natürlich im Suchpfad sein, was standardmäßig der Fall 
sein sollte -- es sei denn Ecliipse hat wieder die GCC-Pfade verbogen 
weil es alles besser weiß.

: Bearbeitet durch User
von Rolf M. (rmagnus)


Lesenswert?

Johann L. schrieb:
>> (undefined reference to 'sin'). Die Flags für den
>> Kompiler lauten:  -lm [...]
>
> Dem Compiler ist das egal; wichtig ist es bein Linken.

Und -lm muss auf der Kommandozeile nach den Dateien kommen, die die 
darin enthaltenen Funktionen aufrufen wollen.

von Tobi (Gast)


Lesenswert?

Fehler gefunden... Ich habe das -lm an die Falsche stelle geschrieben. 
Ich danke euch :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.