2016-07-31 15 views
0

teilt Es gibt wahrscheinlich einen besseren Weg, dies zu tun (und wenn es ist, lass es mich wissen), aber ich versuche machen es so, dass ich nicht eingeben muss so viel jedes Mal, wenn ich meine Programme kompilieren und ausführen möchte. Ich werde wahrscheinlich einige Kommentare über die Verwendung eines Makefile zum Kompilieren und Ausführen meiner Java-Programme erhalten, und das ist in Ordnung. Wenn ich tatsächlich Java-Anwendungen entwickeln würde, würde ich eine IDE verwenden. Dies ist nur für eine Klassenzuweisung.

Ich versuche, meine Argumente von der Befehlszeile an mein Makefile übergeben.
sagen, dass ich diesen Befehl ausführen möchten:

java Driver -n $(arg1) -h $(arg2)

Hier ist, was ich bisher, aber es nicht

arg1 = `echo $ (MAKECMDGOALS funktioniert) | awk {$$ 1} `

Idealerweise alles was ich habe, ist, make 1 2 würde zu geben, und dies würde java Driver -n 1 -h 2

Antwort

1

Dies ist wirklich im Gegensatz laufen, wie soll machen, ist zu arbeiten. Aber wenn Sie darauf bestehen, hier ist es:

arg1 := $(word 1,$(MAKECMDGOALS)) 
arg2 := $(word 2,$(MAKECMDGOALS)) 

null: 
    java Driver -n $(arg1) -h $(arg2) 

%:null 
    @: 
+0

Könnten Sie erklären, wie Make soll funktionieren? Oder was genau meinst du? Ich habe immer nur für die einfache Zusammenstellung und das Ausführen meiner Programme verwendet. Ist ein Makefile nicht nur die Ausführung einer Menge von Befehlen? @Beta –

+0

@ J-Win: Die einfachen Argumente zu machen sollen Zielnamen sein, nicht Parameter anderer Arten. Die Syntax für das Übergeben von Parametern ist 'make arg1 = 1 arg2', und wenn Sie wollen, dass' make 1 2' den gleichen Effekt hat (um die Eingabe zu ersparen), dann erhalten Sie ein seltsames Makefile wie das oben beschriebene. – Beta

+0

Macht Sinn. Ich denke, ich sauge es einfach auf und mache das stattdessen –