ein Kapitel zurück                                           ein Kapitel weiter

Für kürzere Programme, deren kompletter Quelltext, in einer Datei geschrieben wurde können sie weiter wie bisher vorgehen. Sollten sie diese Vorgehensweise aber auf länger Programme verwenden könnten folgende Problem auftreten....

  • Editieren und Complieren dauert länger
  • Quelltext wird unübersichtlich und schwieriger zu verstehen
  • kaum eine Teamarbeit ist möglich


Ich werde diese Beispiel anhand des GNU-Compilers GCC demonstrieren. Auf anderen Compiler dürfte dieser Vorgang ähnlich vor sich gehen. Auch die Programme werden kurz sein, schließlich dient dies nur zu demonstration. Hier unsere 3 Programme...



/*main.c*/

#include <stdio.h>

int main()
{
   modul1();
   modul2();
   return 0;
}




/*modul1.c*/

void modul1()
{
   printf("Ich bin das Modul 1\n");
}




/*modul2.c*/

void modul2()
{
   printf("Ich bin Modul 2\n");
}


Jetzt haben wir 3 Dateien, die wir nun zusammen Compilieren und Linken müssen. Zuerst verwenden wir dazu den Schalter -c womit unsere Datei übersetzt wird aber dabei nicht der Linkerlauf gestartet wird....

gcc -c main.c
gcc -c modul1.c
gcc -c modul2.c


Jetzt befinden sich 3 Objektdateien (*.obj oder *.o) in Ihrem Verzeichnis. Diese 3 Objektdateien können sie nun zu einer Ausführbaren Datei linken...

gcc main.o modul1.o modul2.o

Jetzt befindet sich in Ihrem Verzeichnis die Datei a.out
Dies ist die Ausführbare Datei. Sie könne dem ganzen mit dem Schalter -o natürlich auch einen anderen Namen geben. Wenn sie jetzt die Datei main.c ändern müssen brauchen sie nur diese neu übersetzten...

gcc -c main.c

... und können anschließend die einzelnen Dateien wieder zusammenlinken...

gcc main.o modul1.o modul2.o

Natürlich versteht es sich von selbst das sich in einem der Dateien die main() - Funktion befindet. Hier der ganze Vorgang nocheinmal bildlich...

getrenntes Compilieren und Linken

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf