Dieser Artikel taucht jetzt in die Welt der “Dynamischen Bibliotheken“ ab. Da ich selber noch etwas zu diesem Thema lernen möchte, wähle ich einen sehr einfachen und praxisbezogenen Ansatz für diesen Artikel…

Eine Programmbibliothek bezeichnet in der Programmierung eine Sammlung von Unterprogrammen, die Lösungswege für thematisch zusammengehörende Problemstellungen anbieten. Oft benötigte Programmfunktionen werden also nicht fest in das Programm geschrieben, sondern extern per Schnittstelle zur Verfügung gestellt. Die Einbindung kann dann wahlweise statisch oder dynamisch erfolgen. Weitere Details dazu später. Hier interessiert uns mehr die dynamische Einbindung von Bibliotheken.

Die Programmbibliothek libc:

Zentral für die Funktion eines Linux-Systems ist zum Beispiel die libc , die alle möglichen lebensnotwendigen Funktionen für Programme bündelt, die in der Programmiersprache C geschrieben sind. Auf einem Linux-System gibt es hunderte bis tausende Bibliotheken.

Linker und Compiler:

Ein Linker verbindet die verschiedenen Teile eines Computerprogramms. Der Linker bindet also die Bibliotheken ein… Ein Compiler wandelt den lesbaren Code in die einzige Sprache um, die ein Computer wirklich versteht und das sind Nullen und Einsen.

Praxisbeispiel 1:

Der Code wird mit einem gewöhnlichen Texteditor geschrieben und als cpp-Datei abgespeichert.

#include <iostream>
int main()
{
std::cout << "Hallo Welt!" <<
std::endl;
std:: cin.get();
return 0;
}

Nun geht es ins Terminal…Die gerade erzeugte Datei (hier hallo.cpp) wird nun mit folgendem Terminalbefehl kompiliert..

  • g++ hallo.cpp

Durch den Compiler wird nun eine out-Datei erzeugt. Der Name der Output-Datei kann übrigens auch gleich mit angegeben werden.

  • g++ -o Dateiname.out Dateiname.cpp
  • g++ -o hallo.out hallo.cpp

Abschließend wird das Programm mit folgendem Befehl im Terminal ausgeführt…

  • ./Dateiname.out • ./hallo.out

Die Bibliothek wird in diesem Beispiel per include-Befehl eingefügt und hört auf den Namen “iostream“… Mit dem cat-Befehl kann man auch mal in die out-Datei reinschauen…wird aber sicher nicht wirklich schlauer daraus… Weiter geht es im nächsten Artikel…

Von Torsten