Compile-build-make



  • Hallo!

    Ich hätte mal ne Frage zu den Compilern(naja, nicht ganz ANSI C, sorry):
    Wo ist der genaue Unterschied zwischen:
    Compile
    (Re-)Build
    Make ???

    Viele Grüße,
    Harri



  • harry3 schrieb:

    Hallo!

    Ich hätte mal ne Frage zu den Compilern(naja, nicht ganz ANSI C, sorry):
    Wo ist der genaue Unterschied zwischen:
    Compile
    (Re-)Build
    Make ???

    Viele Grüße,
    Harri

    compile ist der Vorgang die C/C++ Sources zu übersetzen und objekt Dateien zu erstellen

    (Re-)Build ? Du meinst Linken? Linken ist der Vorgang, wenn der Linker alle objekt Dateien zu einer ausführbaren Datei zusammenfügt.

    Make ist ein Tool der GNU Autoconf Tools, um Sources automatisch zu kompilieren, ohne zu wiessen, wie man die ganze Befehle heißen und welche Datei kompiliert werden müssen (und wie)



  • Danke für die Antwort 🙂

    Die ersten 2 hab ich kapiert, aber das 3. leuchtet mir nicht ganz ein:

    Make ist ein Tool der GNU Autoconf Tools, um Sources automatisch zu kompilieren, ohne zu wiessen, wie man die ganze Befehle heißen und welche Datei kompiliert werden müssen (und wie)

    Wann setzt man Make, und wann Build(heißt wirklich so[z.B. MS Visual, oder TIGCC], kann aber durchaus sein dass es das gleiche wie Linken ist) ein?
    Oder bleibt sich das gleich?!(bei mir hats bis jetzt keinen merkbaren Unterschied gemacht!)

    Grüße,
    Harri 🕶



  • harry3 schrieb:

    Die ersten 2 hab ich kapiert, aber das 3. leuchtet mir nicht ganz ein:

    Make ist ein Tool der GNU Autoconf Tools, um Sources automatisch zu kompilieren, ohne zu wiessen, wie man die ganze Befehle heißen und welche Datei kompiliert werden müssen (und wie)

    Das ist nicht ganz richtig. Make ist ein eigenstaendiges Tool und hat mit Autoconf nichts zu tun.

    Bei Make geht es um Abhaengigkeiten. Zum Beispiel haengt ein ausfuehrbares Programm von allen Objektfiles (.o bzw. .obj) ab, aus denen es besteht. Das heisst, das ausfuehrbare Programm kann nur erstellt werden, wenn diese Objektfiles vorhanden und auf dem neuesten Stand sind. Die Objektfiles wiederum haengen von den .c-Files und den eingebundenen .h-Files ab, aus denen sie erzeugt werden. Manche c-Files haengen auch wieder von etwas ab, z.B. wenn man Yacc benutzt.

    Make loest diese Abhaengigkeiten auf. Es bestimmt, welche Dateien wie neu erzeugt werden muessen und fuehrt die dazu noetigen Befehle aus. Welche das im einzelnen sind, und welche Dateien von welchen abhaengen, muss man allerdings per Hand im Makefile festlegen.


Log in to reply