Makefile für C



  • Hallo!

    Ich habe ein Projekt in C aus mehreren Dateien :

    meineFunktion.c
    meineFunktion.h
    main.c
    (greift auch auf meineFunktion.h zu)

    Das möchte ich nacher zu einer Datei programm kompilieren.

    Ich benutze gcc.

    Wenn ich es per Hand kompiliere, dann klappt es :

    gcc -g -Wall -c meineFunktion.c
    gcc -g -Wall -c main.c
    gcc -g -Wall meineFunktion.o main.o -o programm

    Mit dem Makefile hingegen klappt es nicht (wenn ich make eingebe kommt eine Meldung, die Datei konnte nicht gefunden werden, bei ./makefile kommen viele Fehlermeldungen.

    Hat jemand eine Idee, woran das liegt?

    Hier der Code des Makefiles :

    OBJECTS = main.o meineFunktion.o
    CPPFLAGS = -g -Wall
    
    programm : $(OBJECTS)
    	gcc $(CPPFLAGS) $(OBJECTS) -o programm
    
    main.o : main.c
    	gcc $(CPPFLAGS) -c main.c
    
    meineFunktion.o : meineFunktion.c
    	gcc $(CPPFLAGS) -c meineFunktion.c
    

    Gruß,
    re342



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


  • Mod

    Welche Datei konnte nicht gefunden werden? Bitte genaue Fehlermeldung angeben.

    Das hat zwar wahrscheinlich nichts mit deinem Problem zu tun, aber im Makefile hast du da schon Tabulatoren an den richtigen Stellen, oder? Bei dem gezeigten Makefile hast du nämlich keine gesetzt.



  • Die Tabulatoren habe ich im Original gesetzt, hab ich nun nachträglich in den ersten Post eingefügt.

    Hier die genauen Meldungen :

    $ ls -al
    insgesamt 16
    d---------+ 1 Admin None 0 18. Okt 16:16 .
    drwx------+ 1 SYSTEM SYSTEM 0 18. Okt 16:11 ..
    ----------+ 1 Admin None 208 18. Okt 16:12 main.c
    ----------+ 1 Admin None 244 18. Okt 16:14 makefile
    ----------+ 1 Admin None 544 18. Okt 16:12 meineFunktion.c
    ----------+ 1 Admin None 141 18. Okt 16:13 meineFunktion.h

    $ make
    -bash: make: Kommando nicht gefunden.

    $ makefile
    -bash: makefile: Kommando nicht gefunden.

    $ ./makefile
    ./makefile: Zeile 1: OBJECTS: Kommando nicht gefunden.
    ./makefile: Zeile 2: CPPFLAGS: Kommando nicht gefunden.
    ./makefile: Zeile 3: $'\r': Kommando nicht gefunden.
    ./makefile: Zeile 4: OBJECTS: Kommando nicht gefunden.
    ./makefile: Zeile 4: programm: Kommando nicht gefunden.
    ./makefile: Zeile 5: CPPFLAGS: Kommando nicht gefunden.
    ./makefile: Zeile 5: OBJECTS: Kommando nicht gefunden.
    gcc.exe: fatal error: no input files
    compilation terminated.
    ./makefile: Zeile 6: $'\r': Kommando nicht gefunden.
    ./makefile: Zeile 7: main.o: Kommando nicht gefunden.
    ./makefile: Zeile 8: CPPFLAGS: Kommando nicht gefunden.
    : Invalid argumentin.c
    gcc.exe: fatal error: no input files
    compilation terminated.
    ./makefile: Zeile 9: $'\r': Kommando nicht gefunden.
    ./makefile: Zeile 10: meineFunktion.o: Kommando nicht gefunden.
    ./makefile: Zeile 11: CPPFLAGS: Kommando nicht gefunden.
    : Invalid argumentineFunktion.c
    gcc.exe: fatal error: no input files
    compilation terminated.
    ./makefile: Zeile 12: $'\r': Kommando nicht gefunden.

    Das sind die Befehle, die ich ausprobiert habe. Und wie gesagt, wenn ich es einzeln (ohne das Makefile) kompiliere klappt es einwandfrei.

    Gruß



  • Sieht so aus als sei make nicht installiert.



  • Ok, wie kann man das mit Windows installieren (wo bekommt man das her)?



  • Das wird idR mit der Windows Version vom GCC mitinstalliert.
    Schau mal unter PfadZumCompiler\bin.



  • OK danke. Es ist tatsächlich nicht mit installiert worden. Nun, wo ich es nachgeholt habe, funktioniert auch das makefile.



  • Make wird beim gcc auch bei Windows mitinstalliert, aber heisst sowas wie mingw-make32.


Anmelden zum Antworten