Das Kompilieren von Software vom Quellcode hin zum fertigen Binary ist ein komplexer Vorgang, der verschiedene Werkzeuge und Einstellungen voraussetzt. Dabei entsteht eine Vielzahl von Zwischenergebnissen, die zwischengespeichert werden. Verschiedene Werkzeuge übernehmen unterschiedliche Teilaufgaben. Die Gesamtheit der Werkzeuge wird "Toolchain" genannt.

Die Kompilierung eines Binaries aus Quellcode läuft ungefähr so ab:

  • für jede Quellcode-Datei:
    • führe den Präprozessor auf dem Quellcode aus
    • prüfe die Syntax des Quellcodes
    • optimiere den Code und füge Debug-Symbole an
    • kompiliere den Quellcode in eine Objekt-Datei
  • sammle alle Objekt-Dateien ein und erstelle daraus ein großes Binary
  • optimiere das Binary und entferne ungenutzte Symbole
  • dynamisches Linken des entstehenden Binarys an System- und Fremdbibliotheken

Bei jedem dieser Schritte können besondere Optionen und Einstellungen notwendig sein, die der Toolchain übergebenen werden müssen. Hinzu kommt, dass Toolchain und Optionen je nach Arbeitssystem und Zielsystem angepasst werden müssen.

Diese Anpassungen übernimmt ein sogenanntes Build-System. Das Build-System automatisiert den Vorgang der Softwareerstellung, sodass der gesamte Prozess schnell und ohne große Bnutzer-Interaktion durchgeführt werden kann. Es kann dabei beliebige Prozesse automatisieren. Typischerweise sind das:

  • Kompilieren von Software
  • Setzten von Toolchains und Einstellungen
  • systemspezifische Einstellungen (Cross-Build)
  • generieren von Ressourcen-Dateien
  • ausführen von automatisierten Funktionstests (Unit-Tests)
  • Verpacken der erstellten Software in Installationspackete
  • wegräumen der temporären Dateien
Last modified: Friday, 15 June 2018, 12:36 PM