2013-10-31 7 views
0

여러 엔딩으로 여러 파일을 삭제하는 방법, 아마도 누군가가 나를 도울 수 있습니다메이크 :이 메이크에서 수행 얻을 수있는 방법을 찾을 수 없습니다

을 나는이 목록을 파일 이름으로 하나가

$FILES = file1 file2 ... 

와 접미사

$SUF = .suf1 .suf2 ... 

한 나는

file1.suf1 file2.suf1 file1.suf2 file2.suf2 ... 
같은 목록을 얻으려면

어떻게 makefile에서이 작업을 수행 할 수 있습니까?

답변

0

모든 것은 항상 정의에 따라 makefile에서 수행 할 수 있습니다.

먼저 변수 구문이 잘못되었습니다. 당신이 =를 사용하는 좋은 이유가없는 한 항상 :=를 사용해야합니다 $

FILES := file0 file1 

주없이해야합니다. (또한 인터뷰 대상자가 1로 시작하면 "고용하지 말라."

지금, 당신의 질문에 대한 하나 개의 솔루션 덕분에 일이

$(foreach suf, $(SUF),$(addsuffix $(suf), $(FILES))) 
+0

쉼표/​​등 옆에 공백이 있으면주의하십시오. makefile에서. 그것들은 때때로 당신이 원하는 것을하지 않는 방법으로 중요합니다 (예상치 못한 곳에서 당신의 결과물로 끝날 것입니다). 위의 스 니펫은 괜찮지 만'$ (SUF), $ (addsuffix $ (suf), $ (FILES)))')는 자동으로 내용의 n (SUF 길이) 사본을 출력합니다 의 파일. –

+0

@EtanReisner 정확하게 :) –

0

다음과 같은 것이 작동합니다.

FILES = file1 file2 file3 file4 

SUF = .suf1 .suf2 .suf3 .suf4 

$(info $(foreach s,$(SUF),$(foreach f,$(FILES),$f$s))) 

$(info $(foreach s,$(SUF),$(addsuffix $s,$(FILES)))) 
+0

위대하다! –

관련 문제