2016-07-31 63 views
0

可能有更好的方法來做到這一點(如果有請讓我知道),但我想使它,這樣我就不必輸入每次我想要編譯和運行我的程序時都非常多。我可能會收到一些關於使用Makefile來編譯和運行我的Java程序的評論,這很好。如果我真的在開發Java應用程序,我會使用IDE。這只是一個班級任務。

我想將我的參數從命令行傳遞給我的Makefile。
說我要運行這個命令:

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

這裏是我到目前爲止,但它不工作

ARG1 =`回聲$(MAKECMDGOALS )| AWK {$$ 1}`

理想的情況下,一切我都必須鍵入是make 1 2這將運行java Driver -n 1 -h 2

回答

1

這是真的相反的是如何讓這樣運作的。但如果你堅持,在這裏它是:

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

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

%:null 
    @: 
+0

你能解釋make應該如何工作嗎?或者你的意思是什麼?我一直只使用make來編譯和運行我的程序。是不是一個Makefile只是執行一堆命令? @Beta –

+0

@ J-Win:Make的簡單參數應該是目標名稱,而不是其他類型的參數。傳遞參數的語法是'make arg1 = 1 arg2',如果你想'make 1 2'具有相同的效果(爲了保存輸入),那麼你會得到一個奇怪的makefile,就像我上面寫的那樣。 – Beta

+0

有道理。我想我會把它吸起來,然後做 –