Die meisten Linux-Apps sind kompiliert mit:
make
make install clean
Nach meinem Verständnis nimmt make Namen von Build-Zielen als Argumente. Dies install
gilt auch für ein Ziel, das einige Dateien kopiert, und danach clean
für ein Ziel, das temporäre Dateien entfernt.
Aber welches Ziel wird erstellt make
, wenn keine Argumente angegeben werden (z. B. erster Befehl in meinem Beispiel)?
all
ist nur eine Konvention.make install
in sudo und nicht den gesamten Build ausführen müssen .include
weiteres Makefile ist, dessen erstes Ziel es ist%.o : %.cpp
. Das Standardziel ist also ... alle CPP-Dateien zu erstellen?Hier ist die kurze Antwort, um anderen ein paar Sekunden zu ersparen und ihnen das Lesen des Handbuchs zu ersparen. Fügen Sie dies oben in Ihre make-Datei ein:
mytarget ist jetzt das Ziel, das ausgeführt wird, wenn "make" ausgeführt wird und kein Ziel angegeben ist.
Wenn Sie eine ältere Version von make (<= 3.80) haben, funktioniert dies nicht. Wenn dies der Fall ist, können Sie das tun, was anon erwähnt. Fügen Sie dies einfach oben in Ihre make-Datei ein:
Referenzen: https://www.gnu.org/software/make/manual/html_node/How-Make-Works.html
quelle
Mit GNU Make können Sie auch das Standard-Make-Ziel mithilfe einer speziellen Variablen namens angeben
.DEFAULT_GOAL
. Sie können diese Variable sogar in der Mitte des Makefiles deaktivieren, wodurch das nächste Ziel in der Datei zum Standardziel wird.Ref: Das Gnu Make Handbuch - Spezielle Variablen
quelle