Eine statische Bibliothek ist eine Sammlung von vorkompilierten Routinen, die zur Kompilierzeit in ein Programm eingebunden (gelinkt) werden und somit Teil der ausführbaren Datei werden. Im Gegensatz zu dynamischen Bibliotheken (auch als Shared Libraries bekannt) werden statische Bibliotheken nicht zur Laufzeit geladen. Stattdessen wird der Code aus der statischen Bibliothek direkt in die ausführbare Datei kopiert. Dies führt zu einer größeren Größe der ausführbaren Datei, eliminiert jedoch die Abhängigkeit davon, dass die Bibliothek auf dem System vorhanden ist, auf dem die ausführbare Datei ausgeführt wird. Statische Bibliotheken werden häufig zur Verteilung wiederverwendbarer Codekomponenten verwendet, wie z.B. mathematische Funktionen, Datenstrukturen oder Gerätetreiber. Sie sind besonders nützlich, wenn Sie sicherstellen möchten, dass Ihr Programm den gesamten notwendigen Code eingebaut hat und nicht von externen Abhängigkeiten abhängt, die auf verschiedenen Systemen fehlen oder inkompatibel sein könnten. Die Dateiendung '.a' ist die gebräuchlichste Erweiterung für statische Bibliotheken auf Unix-ähnlichen Systemen, einschließlich Linux und macOS. Unter Windows verwenden statische Bibliotheken typischerweise die Erweiterung '.lib'.