Bibliotheken
← Beispiel zu Vererbung und Ãœberladen | ● | Praxisbeispiel mit JPEG →
C++ für sich alleine ist ein “LKW ohne Anhänger”.
Die sog. Bibliotheken stellen die “Anhänger” von C++ dar, in dem Sinne, dass sie die Funktionalität von C++ für einen bestimmten Einsatzzweck erweiteren.
Beispiele für etablierte Bibliotheken und deren Einsatzzweck:
- Grafikbibliotheken (OpenGL, OpenSceneGraph)
- Benutzerinterface- bzw. GUI-Bibliotheken (Qt, Gtk+, Cocoa)
- Verschlüsselung (OpenSSL)
- Mustererkennung (OpenCV)
- etc. pp.
Im Allgemeinen ist eine Bibliothek ein Archiv, in dem mehrere übersetzte Module bzw. Objektdateien mit der Endung .o gespeichert sind. Das Archiv-Format und die Tools, mit denen Bibliotheks-Archive erzeugt werden können, unterscheiden sich von Platform zu Plattform.
Unter Unix wird ein Archiv z.B. mit der Endung .a mit dem ar tool erzeugt (siehe auch hier):
ar -crs libName.a moduleA.o moduleB.o ...
Die erzeugten Bibliotheken mit der Endung .a für sog. statische Archive (oder .so für sog. shared objects) werden unter Linux standardmässig im Pfad
Die dazugehörigen Header mit der Endung .h werden unter Linux standardmässig im Pfad
Um eine bestimmte Bibliothek zu verwenden, müssen die entsprechenden Header der Bibliothek inkludiert werden und beim Linken die Archivdateien mit der -l Compiler-Option auf der Kommandozeile bekanntgemacht werden.
Im Folgenden soll das Prinzip der Nutzung von Bibliotheken anhand der JPEG Open-Source Bibliothek und der Qt Klassenbibliothek erläutert werden.
← Beispiel zu Vererbung und Ãœberladen | ● | Praxisbeispiel mit JPEG →