Statische Bibliotheken in C++
Willemers Informatik-Ecke
Eine Bibliothek enthält eine Sammlung von Funktionen, Klassen und Variablen, die von einem Anwendungsprogramm genutzt werden können.

Erstellen einer statischen Bibliothek

Typischerweise werden Bibliotheken aus mehreren Source-Dateien erstellt. Diese müssen zunächst kompiliert werden:
g++ -c spielfeld.cpp
g++ -c flotte.cpp
g++ -c schiff.cpp
Anschließend werden die Objektdateien zu einer neuen Datei zusammengebunden. Dazu dient unter UNIX und Linux der Befehl ar. Er kann theoretisch sogar als allgemeiner Datenpacker verwendet werden. Für das Erstellen statischer Bibliotheken verwendet er die Optionen -crs.

Die erzeugte Datei beginnt nach POSIX-Standard mit dem Präfix lib und endet auf .a. Die Bibliothek für bermuda heißt also libbermuda.a und wird später als bermuda eingebunden.

ar -crs libbermuda.a flotte.o schiff.o spielfeld.o 
Die Liste der Elemente einer Bibliothek lässt sich mit dem Befehl nm anzeigen.
nm -s libbermuda.a 
Wenn Sie eine IDE verwenden, finden Sie dort Projekte zur Erstellung von Bibliotheken. Das Ziel eines solchen Projekts ist eine Bibliotheksdatei und statt einer ausführbaren Anwendungsdatei.

Einbinden einer statischen Bibliothek

Für das Einbinden von Bibliotheken sind zwei Optionen relevant: Im folgenden Beispiel wird das Programm main.cpp zu einer ausführbaren Datei namens programm erstellt. Dabei wird die Bibliothek bermuda eingebunden.
g++ -o programm main.cpp -L -lbermuda
Wenn Sie eine IDE verwenden, sind diese Informationen in den Dialogen zu den Projekteinstellungen zu suchen. Dort finden Sie einen Eintrag, in dem Sie Bibliotheken aufzählen und auch den Pfad ergänzen können.

Hinweis: Zu einer Bibliothek gehört in der Regel auch eine Headerdatei, die natürlich auch eingebunden werden muss.