Irgendein Anfängerfehler beim Makefile



  • Hallo,

    ich habe bisher nur mit Eclipse gearbetet und bekam die Makefiles daher automatisch erstellt. Nun muss ich mein Programm aber Dritten zugänglich machen und von daher muss ich jetzt ein Makefile per Hand erstellen.

    Mein Makefile (reduziert auf das wesentliche, um das Problem zu sehen), sieht wie folgt aus (Vorlage war der Eintrag 'make' auf wikipedia.de):

    CC = g++
    LD = ld
    
    prog: bool.o 
    	$(LD) -o prog bool.o 
    
    bool.o: bool.cpp
    	$(CC) -c -I/gobics/home/ingo/workspace/ARGUS/src bool.cpp
    

    Wenn ich nun bool.cpp und bool.h ins Verzeichnis vom Makefile lege, ist make in der Lage bool.cpp zu finden (und gibt entsprechende Fehler aus, das ihm alles mögliche fehlt). Wenn ich bool.cpp und bool.h aber in
    /gobics/home/ingo/workspace/ARGUS/src
    lege, bekomme ich die Fehlermeldung

    make: *** Keine Regel vorhanden, um das Target »bool.cpp«,
      benötigt von »bool.o«, zu erstellen.  Schluss.
    

    Kann jemand auf die Schnelle sehen, welchen (wahrscheinlich total trivialen) Fehler ich mache?



  • CC = g++
    LD = ld
    
    prog: bool.o 
    	$(LD) -o prog bool.o 
    
    bool.o: /gobics/home/ingo/workspace/ARGUS/src/bool.cpp
    	$(CC) -c -I/gobics/home/ingo/workspace/ARGUS/src bool.cpp
    

    Versuch's mal damit 😉



  • auch brav daran gehalten tabs zu verwenden und keine spaces am ende der lines zu haben? (vorallem bei soft linebreaks)



  • Aquae schrieb:

    CC = g++
    LD = ld
    
    prog: bool.o 
    	$(LD) -o prog bool.o 
    
    bool.o: /gobics/home/ingo/workspace/ARGUS/src/bool.cpp
    	$(CC) -c -I/gobics/home/ingo/workspace/ARGUS/src bool.cpp
    

    bitte keine absoluten pfade verwenden. damit kann er das makefile dann auch nicht weitergeben. (außer alle seine kollegen heißen ingo...)

    src/bool.cpp
    

    und

    -Isrc
    

    sollten ausreichen. ist /gobics/home/ingo/workspace/ARGUS das verzeichnis, in dem das makefile liegt?



  • Danke, hat sich inzwischen erledigt: Ich hatte ganz übersehen, dass man auch einfach das automatisch von Eclipse erstellte Makefile verwenden kann (auch wenn es ein Dritter nutzt).


Anmelden zum Antworten