2016-07-31 5 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

의미가 있습니다. 나는 단지 그것을 빨아 먹을 것이고 대신 그렇게 할 것이라고 생각한다. –

관련 문제