www.mikrocontroller.net

Forum: Compiler & IDEs sqrt funktioniert nicht, kein linken möglich, arm-elf


Autor: Franz Göbbel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Folgende Meldung spukt der GCC bei mir aus? Was bedeutet diese 
Fehlermeldung? Wieso ist in der sqrt Funktion eine undefinierte 
Referenz? math.h habe ich eingebunden und die libm.a wird auch 
gelinkt...


libm.a(w_sqrt.o): In function `sqrt':
../../../../../newlib-1.14.0/newlib/libm/math/w_sqrt.c:83: undefined 
reference to `__errno'
../../../../../newlib-1.14.0/newlib/libm/math/w_sqrt.c:86: undefined 
reference to `__errno'


danke!

Autor: Franz Göbbel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okey es hat geholfen:

$(LD) $(LFLAGS) -o main.out $(OBJECTS) libm.a libc.a libgcc.a

statt

$(LD) $(LFLAGS) -o main.out $(OBJECTS) libc.a libm.a libgcc.a

zu nutzen.

Wieso? Danke!

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wegen der Linkreihenfolge. Undefinierte Symbole (aus Bibliotheken) 
werden nur mit den Symbolen "gefüllt" die beim Einbinden der Bibliothek 
bereits definiert sind. Und da __errno vermutlich in der libc definiert 
ist, du die libm aber vorher einbindest wird das Symbol nicht aufgelöst 
und der Linker haut dir das dann um die Ohren :-)

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.