Frage von ZeroclawX, 17

Was genau ist eine statische Bibliothek (static library)?

Was genau ist eine statische Bibliothek? Eine Sammlung von Funktionen und Klassen die man dann in einen Quellcode einfügen kann damit auf diese Funktionen und Klassen usw. zugegriffen werden kann? Und wie genau, falls das der Fall ist, benutze ich so eine statische Bibliothek? Ich fände es nämlich viel besser alle Sachen in eine Bibliothek zu schreiben und von da aus zu benutzen, ohne 1000 verschiedene Header und Cppdateien zu erstellen.

Antwort
von PWolff, 16

Eine statische Bibliothek ist eine Bibliothek (Sammlung von Programmmodulen), die zur Kompilierungszeit eingebunden (und erforderlichenfalls übersetzt) werden.

Im Gegensatz dazu wird bei einer dynamischen Bibliothek lediglich ein Verweis/Link einkomplilert und die Bibliothek selbst erst zur Laufzeit geladen.

(Eine kurze Erklärung der wichtigsten Unterschiede habe ich hier gefunden: http://www.strcat.de/eigenes/developments/dyn.html)

Headerdateien (die die enthaltenen Funktionen deklarieren) musst du in beiden Fällen einbinden - irgendwoher muss der Compiler ja wissen, wie diese Funktionen aufzurufen sind. (Statt der Headerdateien kann man im Prinzip auch auf die Bibliothek selbst verweisen, falls diese die Deklarationen ebenfalls im Klartext enthält. Bringt aber keinen Vorteil.)

(Ich weiß zu schätzen, dass Microsoft Visual Studio sich im Fall von C# um diese Header-Deklarationen im Hintergrund kümmert und ich sie während der normalen Arbeit am Quellcode nicht zu sehen bekomme.)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten