Makefile clean .o Dateien unter Dos entfernen



  • Hi Leute,

    hab folgendes Makefile geschrieben:

    # upper_case.mak
    
    O = o
    OBJS = default_error_handling.$(O)\
           read_line.$(O)\
           reset_array.$(O)\
           upper_case.$(O)\
           upper_case_main.$(O)
    CC = gcc
    LD = $(CC)
    STD_CC_FLAGS = -c
    ADDITIONAL_CC_FLAGS = -Wall
    CC_FLAGS = $(STD_CC_FLAGS) $(ADDITIONAL_CC_FLAGS)
    STD_LD_FLAGS = -o
    ADDITIONAL_LD_FLAGS =
    LD_FLAGS = $(STD_LD_FLAGS) $(ADDITIONAL_LD_FLAGS)
    EXECUTABLE = upper_case.exe
    
    #-----------------------------------------------------------------------
    $(EXECUTABLE) : $(OBJS)
    	$(LD) $(LD_FLAGS)$(EXECUTABLE) $(OBJS)
    
    default_error_handling.$(O) : default_error_handling.c\
                                  default_error_handling.h
    	$(CC) $(CC_FLAGS) default_error_handling.c
    
    read_line.$(O) : read_line.c\
                     read_line.h
    	$(CC) $(CC_FLAGS) read_line.c
    
    reset_array.$(O) : reset_array.c\
                       reset_array.h
    	$(CC) $(CC_FLAGS) reset_array.c
    
    upper_case.$(O) : upper_case.c\
                      upper_case.h
    	$(CC) $(CC_FLAGS) upper_case.c
    
    upper_case_main.$(O) : upper_case_main.c\
                           read_line.h\
                           reset_array.h\
                           upper_case.h
    	$(CC) $(CC_FLAGS) upper_case_main.c
    
    all : $(EXECUTABLE)
    
    clean :
    	rm $(OBJS) $(EXECUTABLE)
    

    Bitte richtet eure Aufmerksamkeit dem Target clean! Unter Linux würde der Befehl zum
    entfernen von .o Dateien so aussehen. Aber wie kann man mehrere Dateien unter Dos löschen?
    Ich kenne da nur den Befehl del. Aber der löscht nur eine Datei!

    Danke



  • also in win xp mit der eingabeaufforderung kann ich z.b. del t1.txt t2.txt t3.txt machen und er löscht sie alle

    auch geht der folgende test:
    [code]
    O = txt
    OBJS = t1.(O) t2.(O)\ t2.(O)\
    t3.$(O)

    clean :
    del $(OBJS)
    [code]

    falls es bei dir nicht geht, vielleicht wegen dos kannst du noch folgende sachen probieren:

    vielleicht gibt es bei dem make, dos, ... eine möglichkeit die namen in OBJS in einer schleife durch zu gehen?

    oder einfacher, wenn auch nicht 100% das gleiche, da es alle dateien mit einer bestimmten endung löscht, ist es
    clean :
    del *.$(O)
    del $(EXECUTABLE)
    zu benutzen



  • Ich habe

    clean : 
        del *.$(O) 
        del $(EXECUTABLE)
    

    ausprobiert und das hat geklappt. Aber wie gesagt: löscht alle obj-Dateien.
    Wenn ich unter Dos:

    del Datei1 Datei2 Datei3 DateiN
    

    eingebe, dann
    bekomme ich folgende Fehlermeldung: del zu viele Parameter.

    Ist das nun der einzige Weg?

    Danke



  • benutzt du wirklich ein richtiges dos?
    weil unter win xp geht es bei mir in der eingabeaufforderung,
    die haben wohl den del befehl etwas erweitert

    du kannst dir aber auch ein kleines programm schreiben, dass mehrere dateinamen entgegen nimmt, und die entsprechenden dateien dann entweder selber löscht oder per systemaufruf von del löscht



  • Unter XP Dos? Ich dachte Dos wäre bei XP abgeschafft worden?



  • win xp hat aber trotzdem eine eingabeaufforderung,
    also eine möglichkeit auf der kommandozeile zu arbeiten,
    sowas wie in linux unterm x die terminalfenster


Anmelden zum Antworten