Es gibt statische Bibliotheken (LIB) und dynamische Bibliotheken (DLL). Beachten Sie jedoch, dass .LIB-Dateien entweder statische Bibliotheken (mit Objektdateien) oder Importbibliotheken (mit Symbolen, damit der Linker eine Verknüpfung zu einer DLL herstellen kann) sein können.
Bibliotheken werden verwendet, weil Sie möglicherweise Code haben, den Sie in vielen Programmen verwenden möchten. Wenn Sie beispielsweise eine Funktion schreiben, die die Anzahl der Zeichen in einer Zeichenfolge zählt, ist diese Funktion in vielen Programmen hilfreich. Sobald diese Funktion ordnungsgemäß funktioniert, müssen Sie den Code nicht mehr bei jeder Verwendung neu kompilieren. Sie legen den ausführbaren Code für diese Funktion in einer Bibliothek ab, und der Linker kann den kompilierten Code extrahieren und in Ihr Programm einfügen . Aus diesem Grund werden statische Bibliotheken manchmal als "Archive" bezeichnet.
Dynamische Bibliotheken gehen noch einen Schritt weiter. Es erscheint verschwenderisch, mehrere Kopien der Bibliotheksfunktionen in jedem der Programme zu belegen. Warum können nicht alle eine Kopie der Funktion gemeinsam nutzen? Dafür sind dynamische Bibliotheken gedacht. Anstatt den Bibliothekscode beim Kompilieren in Ihr Programm zu integrieren, kann er ausgeführt werden, indem er beim Laden in den Speicher Ihrem Programm zugeordnet wird. Mehrere gleichzeitig ausgeführte Programme, die dieselben Funktionen verwenden, können alle eine Kopie gemeinsam nutzen, wodurch Speicherplatz gespart wird. Tatsächlich können Sie dynamische Bibliotheken nur nach Bedarf laden, abhängig vom Pfad durch Ihren Code. Es macht keinen Sinn, wenn die Druckerroutinen Speicher belegen, wenn Sie nicht drucken. Auf der anderen Seite bedeutet dies, dass auf jedem Computer, auf dem Ihr Programm ausgeführt wird, eine Kopie der dynamischen Bibliothek installiert sein muss.
Beispielsweise benötigt fast jedes in 'C' geschriebene Programm Funktionen aus einer Bibliothek namens 'C Runtime Library', obwohl nur wenige Programme alle Funktionen benötigen. Die C-Laufzeit ist sowohl in statischer als auch in dynamischer Version verfügbar, sodass Sie je nach Bedarf bestimmen können, welche Version Ihr Programm verwendet.