mikrocontroller.net

Forum: Compiler & IDEs objektcode in winavr einbinden


Autor: oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

ich sollte ein Objektfile mit der Endung .a mein winavr projekt
einbinden.
Kann mir jemand erklären, ob und wie das funktioniert?

Besten Dank

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Datei mit der Endung ".a" klingt schwer nach einer Library.
Hast Du das Passende Headerfile?

Ja:
Vermutlich heißt die Datei "lib<xyz>.a", und kann dann im Makefile
unter LDFLAGS (falls Du das Template von MFile verwendest) per
",-l<xyz>" (ACHTUNG: ohne "lib" und ohne Endung) dem Linker
bekannt gemacht werden.

Nein:
Besorge Dir das Headerfile und gehe zu "Ja:".

Ohne Headerfile wirst Du wohl kaum die Chance haben, die Funktionen
innerhalb der Library nutzen zu können (Du kennst die Prototypen ja
nicht und das passt dem Compiler genauso wenig ;).

Autor: oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe
ja, ich habe das Headerfile.
Jetzt bin ich aber noch mit dem MFile überfordert.
Wie muss ich das genau dem Linker bekanntgeben?
Die a-Datei heisst: libUSBP_StandAlone.
und das Headerfile: USBP_standalone_lib_compile.h

muss ich das im folgenden Teil im MFile angeben und wenn ja wie?

#---------------- Linker Options ----------------
#  -Wl,...:     tell GCC to pass this to linker.
#    -Map:      create map file
#    --cref:    add cross reference to  map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
LDFLAGS += $(EXTMEMOPTS)
LDFLAGS += $(PRINTF_LIB) $(SCANF_LIB) $(MATH_LIB)

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ganz einfach:

LDFLAGS = -Wl,-Map=$(TARGET).map,--cref,-L.,-lUSBP_StandAlone

Zu den Parametern: -L. erweitert den Librarysuchpfad um das aktuelle
Verzeichnis und -lUSBP_StandAlone fügt die Library
"libUSBP_StandAlone.a" der Liste der zu verwendenden Libs hinzu...

Autor: oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank

das werde ich mal ausprobieren

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.