59 Stimmen

Meldungen in make clean unterdrücken (Makefile silent remove)

Ich frage mich, wie ich ein Echo in einem Makefile vermeiden kann:

clean:
    rm -fr *.o

wird diese Regel gedruckt:

$>make clean   
rm -fr *.o

$>

Wie kann ich das vermeiden?

4voto

Malvineous Punkte 22238

Es gibt eine großartiger Artikel über die Verwendung .SILENT in der erklärt wird, wie man sie bedingt aktiviert.

Ich habe diese Informationen verwendet, um sie in mein Makefile aufzunehmen:

# Use `make V=1` to print commands.
$(V).SILENT:

# Example rule, only the @echo needs to be added to existing rules
*.o: %.c
    @echo " [CC]  $<"
    gcc ...

Das bedeutet, dass Sie bei der Ausführung von make Normalerweise wird die normale Ausgabe unterdrückt und stattdessen die echo Befehle funktionieren:

$ make
 [CC]  test.c
 [CC]  test2.c

Aber es erlaubt Ihnen, Probleme zu debuggen, indem Sie die V=1 Parameter, der immer noch die [CC] Nachrichten, da es die Ausgabe auflockert, aber die traditionelle Makefile-Ausgabe ist auch sichtbar:

$ make V=1
 [CC]  test.c
gcc ...
 [CC]  test2.c
gcc ...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X