2013-03-22 17 views
8

Hey ich habe nur eine kurze Frage über Makefile. Gibt es eine Möglichkeit, die aus einem Makefile generierte ausführbare Datei automatisch auszuführen?Run Executable von Makefile

Wie, wenn ich einfach „machen“ wird es kompilieren und bauen und automatisch ausgeführt, so kann ich den zusätzlichen Schritt von ./myExecutable überspringen

Ich habe unten in meine Notizen:

run: prog1 
     ./prog1 

Aber Es scheint nicht zu funktionieren.

Dank

+1

'es zu Werk' scheint nicht - was passiert, wenn Sie' run' machen geben? Irgendeine Konsolenausgabe? Irgendwelche Fehlermeldungen? –

Antwort

12

Wenn Sie ohne Angabe von Zielen laufen zu lassen, wäre es das erste Ziel es innerhalb des Makefile findet auszuführen. Per Konvention ist all der Name eines solchen Ziels.

Wenn Sie run eine Voraussetzung für all machen und markieren Sie beide all und run als PHONY Ziele, sollten Sie gut zu gehen.

all: run 

run: prog1 
    ./prog1 

.PHONY: all run 

BTW, ich nehme an, Sie bereits einige Regeln für den Aufbau prog1 in Ihrem Makefile, und habe daher nicht in der oben gezeigten Makefile enthalten.

Eine Alternative nur explizit mit dem Ziel run machen würde aufzurufen, führen Sie das heißt den folgenden Befehl ein:

make run 
+0

Ja, ich hatte Regeln für das Bauen. Ich hielt es nicht für notwendig, meinen Makefile-Code hinzuzufügen, da es sich um eine kurze Frage handelte. Aber danke! klappt wunderbar. – ModdedLife