AVR statische Bibliotheken

OP #3285401
Lesenswert?
• ▲
▼
Hallo Forum,

ich bin dabei eine RTC vom Typ DS 1307 zum laufen zu bekommen.
Um die Software so allgemeingültig wie möglich zu machen, habe ich zwei 
Bibliotheken erzeugt. Eine für die TWI Funktionen und eine für die RTC 
Funktionen. Um die RTC-Bibliothek zu übersetzen muss ich die 
TWI-Bibliothek dazulinken. Das sehe ich noch ein. Wenn ich das 
Hauptprogrmm übersetze und die RTC-Bibliothek dazulinke reicht das dem 
GCC nicht aus. Ich muss noch einmal die die TWI-Bibliothek dazulinken. 
Da, laut AtmelStudio, beide Bibliotheken statisch sind verstehe ich das 
so, dass die TWI-Bibliothek einmal zu der RTC-Bibliothek und zusätzlich 
zu meinem Hauptprogramm, also zweimal, dazugelinkt wird und somit auch 
zweimal im Hexcode vorhanden sind.
So mein Verständniss von statischen Biblotheken.

Wo ist da mein Denkfehler?


Gruß
Peter
Gast #3285541
Lesenswert?
• ▲
▼
Peter Jänsch schrieb:
> Um die RTC-Bibliothek zu übersetzen muss ich die
> TWI-Bibliothek dazulinken.
Kann eigentlich nicht, denn die wird erst beim Linken gebraucht, was du 
ja zu dem Zeitpunkt nicht tust.

Peter Jänsch schrieb:
> dass die TWI-Bibliothek einmal zu der RTC-Bibliothek und zusätzlich
> zu meinem Hauptprogramm, also zweimal, dazugelinkt wird
Da statische Bibliotheken (zumindest die im Unix-Style (.a), die GCC 
verwendet) keinerlei Abhängigkeitsinformationen enthalten, weiß der 
Linker nicht dass die RTC-Bibliothek die TWI-Bibliothek benötigt, daher 
musst du sie da mit angeben. Beim Compilen der RTC-Bibliothek brauchst 
du die TWI-Bibliothek noch nicht.
OP #3287099
Lesenswert?
• ▲
▼
Mein Fehler war nicht die Verwechselung von Bibliotheken und Headerfiles 
sondern dass ich glaubte bei der RTC-Bibliothek müsste ich die 
TWI-Bibliothek mit angeben. War aber wie "Kindergärtner" geschrieben hat 
nicht notwendig.
Wieder einen Schritt weiter bei der Benutzung des AVR-GCC ;-)

Danke für eure Hilfe!!!

Bis bald mal wieder
Peter

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.