2010-04-23 7 views
3

GNU make를 사용하고 있습니다. 소스 파일과 오브젝트 파일을 다른 폴더에 보관하고 싶습니다.폴더에있는 파일에 대한 유추 규칙을 만듭니다.

첫 번째 단계로, 원본 파일을 내 프로젝트 폴더의 루트에두고 하위 파일 (예 : Debug/)에있는 개체 파일을 원합니다.

추론 규칙은 다음과 같습니다 루트 폴더에는 .OBJ 없기 때문에

.ss.obj: 
    echo Assembling $*.ss... 
    $(ASSEMBLY) $(2210_ASSEMBLY_FLAGS) $*.ss -o Debug\$*.obj 

하지만 그 경우

는 할 모든 파일을 항상 다시 작성합니다.

.ss.obj 줄에 대상 폴더를 포함 할 수 있습니까?

나는 또한 시도 : $(SRC)

$(OBJS_WITH_PATH):$(SRC)  
    echo Assembling $<... 
    $(ASSEMBLY) $(ASSEMBLY_FLAGS) $< -o [email protected] 

을 내 모든 소스의 목록으로, $(OBJS_WITH_PATH) 그런 식으로 내장 :

OBJS_WITH_PATH = $(patsubst %.ss,Debug\\%.obj,$(SRC)) 

을하지만 모든 오브젝트 파일에 대한 모든 소스 파일에 대한 종속성 빌드 .

우선 내가 쓴 추론 규칙을 수정하여 Debug/*.obj 개의 파일을 가져와야합니다. 그것이 지금 말하는 것은 no rule to make target Debug/asdfasdf.obj입니다.

답변

3

사용 패턴 규칙 :

Debug/%.obj : %.ss 
+0

좋아요, 괜찮했다. 감사! – Gauthier

관련 문제