Forum: Compiler & IDEs AVR statische Bibliotheken


von Peter J. (hubipet)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter Jänsch schrieb:
> Um die RTC-Bibliothek zu übersetzen muss ich die TWI-Bibliothek
> dazulinken. Das sehe ich noch ein.

Ich nicht.

Ich fürchte aber, du verwechselst Bibliotheken mit Headerfiles.

von Kindergärtner (Gast)


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.

von Peter J. (hubipet)


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

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.