Glocke hat geschrieben:Erstmal danke, aber so richtig kann ich damit noch nichts anfangen. Kannst du mir sagen wie du die Makefile in meinem Beispiel formulieren würdest? Hier mal eine Dateiliste:
Ich habe eine ähnliche Struktur. Hierbei hat jedes Verzeichnis ein Makefile, dass grundlegende Variablen setzt: Wo bin ich? Was brauche ich.
Wo bin ich klärt sich mit der Position, wo das Hauptverzeichnis ist, z.B. "../../.." ist der Pfad zum Ursprung. Was brauche ich sind die hier verwendeten Libs. Nicht jedes Verzeichnis braucht mysql, gtk, qt, opengl und alles andere, die meisten brauchen nix.
Anschließend inkludiere ich das eigentliche Make-File.
Dieses kompiliert alle .cpp-Dateien im aktuellen Verzeichnis und sucht dann in einer for-Schleife nach Verzeichnissen. Wenn in dem Verzeichnis ein Makefile ist, führe ich das aus, dieses funktioniert genauso: Wo bin ich, was brauche ich, inkludieren, ab dafür.
Das meiste sind eher kleine Bash-Skripts innerhalb des Make-Files.
Glocke hat geschrieben:Dabei ist die
main.cpp quasi der Startpunkt des Programms.
Ich hab von der ganzen Kompiler- und Makefile-Sache keine tiefergehende Ahnung. Aber ein gutes Beispiel würde mir da sicher viel helfen

Bist Du halbwegs fit mit Bash?
Du kannst mit Wildcards bereits alle Dateien im lokalen Verzeichnis zusammenfassen:
Die kannst Du nun entweder einzeln kompilieren. Ich habe eine weitere Variable, in die ich die Liste der "*.cpp" in eine Liste der "*.o" Dateien umgestalte. Das müsste ich selbst googlen.
Der Rest fällt in eine Pattern-Regel, die dann kompiliert.
Die OBJFILES kannst Du ja in der ersten Runde einfach mal auflisten für ein Verzeichnis und das ans Laufen bringen. Damit bist Du schonmal auf dem richtigen Weg.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.