exe = mp1
exe2 = compare
mp1: $(exe)
compare: $(exe2)
COMPILER = g++
COMPILER_OPTS = -c -g
LINKER = g++
LINKER_OPTS =
common_objs = EasyBMP.o
exe_objs = main.o
exe2_objs = compare.o
$(exe) : $(common_objs) $(exe_objs)
$(LINKER) $(LINKER_OPTS) $^ -o [email protected]
$(exe2) : $(common_objs) $(exe2_objs)
$(LINKER) $(LINKER_OPTS) $^ -o [email protected]
EasyBMP.o : EasyBMP.h EasyBMP.cpp EasyBMP_BMP.h EasyBMP_DataStructures.h EasyBMP_VariousBMPutilities.h
$(COMPILER) $(COMPILER_OPTS) EasyBMP.cpp
main.o : main.cpp
$(COMPILER) $(COMPILER_OPTS) main.cpp
compare.o : compare.cpp
$(COMPILER) $(COMPILER_OPTS) compare.cpp
clean:
-rm *.o $(exe)
비교를하거나 mp1을 만들 때 순환 종속성이 떨어졌습니다. 뭐가 문제 야??순환 의존성이 make 파일의 실행 파일 두 개 이상에 누락되었습니다.
"% ^"매크로가 정확히 무엇을 의미하는지 설명 할 수 있습니까 ??
exe = mp1
exe2 = compare
mp1: $(exe)
compare: $(exe2)
그래서 변수를 확장 한 후, 이것이다 :
순환 종속성이 삭제되었다고 말씀하시면 매우 유용 할 것입니다. 정확한 오류 메시지를 붙여 넣는 것은 질문 할 때 가장 먼저해야합니다. – MadScientist