2011-12-29 5 views
1

내 소스 파일이 ../../../ stuff해야 할 한 디렉토리 안에 있지 않습니다. 명령 :makefile notdir 명령

$(OBJDIR) $(notdir $(SOURCECODE:.c=.o)) 

$(SOURCECODE) (../ex/test.c)이 제대로되어 obj로 이름에 그러나 단지 첫번째 파일 이름/시험이와 ../ex/test.c to obj/test.o

:

그 후, 나는 예를 들어 소스 파일 이름을 변경해야 나머지는 디렉터리 정보없이 *.o처럼 보입니다. 당신은 같은 목록에 $(OBJDIR)을 붙일 때문이다

답변

4

은 다음과 같습니다 obj/ + foo.c bar.c baz.c 당신이 원하는하지 않은, obj/foo.c bar.c baz.c을 제공합니다.

이 목록의 사용 각 파일에 addprefix 기능 디렉토리를 추가하려면 :

$(addprefix $(OBJDIR),$(notdir $(SOURCECODE:.c=.o))) 
4
$(addprefix $(OBJDIR),$(notdir $(SOURCECODE:.c=.o))) 
+0

오, 당신은 더 빨리했다. :) –

+0

@ EldarAbusalimov : 그러나 당신은 더 나은 설명을 썼습니다 :-). +1. – thiton