2015-01-23 2 views

답변

1
%.o : mkdirs %.c $(HEADERS) 
    $(CC) -c $(word 2,$^) -o obj/[email protected] 

all : parser.o 
    ar cr out/libsip.a $< 

자동 변수를 사용 이해 현재 디렉토리에있는 parser.o 파일.

그러면 %.o 규칙은 현재 디렉토리가 아닌 obj 디렉토리에 파일을 생성합니다.

ar 명령은 찾지 못합니다.

은 전제 조건을 찾는 것입니다. obj/parser.o가 이미 존재한다면 make는 내가 믿는 all 타겟을 찾을 것입니다.

How Not to Use VPATH을 참조하십시오.

+0

obj/parser.o 파일이 있지만 parser.o가 실제 경로로 바뀌지 않습니다 – karim

+0

make를 시작할 때 존재한다는 의미입니다. 그리고 네, 그것이 전제 조건이 만들어 내려는 것이 아니기 때문에 아닙니다. 그것은 당신이'obj/parser.o'를 만들 때'parser.o'를 만들려고했지만 make는 그것을 모릅니다. –

+0

아, 알 겠어요.하지만 제게 해결책을 제안 할 수 있어요? – karim