2013-02-19 2 views
0

P18298_ca.sub라는 폴더의 모든 .cc 파일을 P18298_ca.cmp의 .exe 파일로 컴파일하려고합니다. 소스와 대상 디렉토리가 모두 들어있는 디렉토리에서 make 명령을 사용하여 컴파일합니다. 오류 읽기 :한 디렉터리의 cpp 파일을 다른 디렉터리에 컴파일

make : * 대상을 만들 규칙 없음 P18298_ca.cmp/00a5bffb6a4792d7bcaed90ff6d3ca88-WA.exe', needed by main.exe '. 중지. 여기

내가 *.exe 파일에서하지, *.obj 파일의 바이너리가 내장되어

CPP_FILES := $(wildcard P18298_ca.sub/*.cc) 
    OBJ_FILES := $(patsubst P18298_ca.sub/%.cc,P18298_ca.cmp/%.exe,$(CPP_FILES)) 
    LD_FLAGS := ... 
    CC_FLAGS := ... 

    main.exe: $(OBJ_FILES) 
     g++ $(LD_FLAGS) -o [email protected] $^ 

    obj/%.exe: src/%.cc 
     g++ $(CC_FLAGS) -c -o [email protected] $< 

답변

0

을 사용하는 메이크 코드입니다. 또한 매크로의 디렉토리와 기본 규칙은 동일해야합니다. Makefile의이 줄을

OBJ_FILES := $(patsubst P18298_ca.sub/%.cc,P18298_ca.cmp/%.obj,$(CPP_FILES)) 

P18298_ca.cmp/%.obj: P18298_ca.sub/%.cc 
    g++ $(CC_FLAGS) -c -o [email protected] $< 
으로 변경하십시오.