.cpp 파일이 여러 개 포함 된 폴더가 있습니다. A.cpp, B.cpp 및 C.cpp. 그것들은 모두 서로 독립적입니다. A.cpp를 A.o로 컴파일 한 다음 A라는 바이너리 파일을 컴파일 할 수 있습니다. 따라서 B.cpp와 C.cpp가 있습니다.makefile을 사용하여 하나의 폴더에있는 모든 파일을 독립적으로 컴파일하고 업데이트하는 방법
이 모든 파일을 한 번에 컴파일 할 수있는 makefile을 작성하고 싶습니다. 그리고 미래에 D.cpp와 같은 새로운 파일이이 폴더에 저장되면 makefile은 자동으로이 파일을 처리 할 수 있습니다.
나의 현재 파일
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=$(wildcard *.cpp)
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=$(SOURCES:.cpp=)
all: $(SOURCES) $(OBJECTS) $(EXECUTABLE)
$(OBJECTS): $(SOURCES)
$(CC) $(CFLAGS) $(@:.o=.cpp) -o [email protected]
$(EXECUTABLE): $(SOURCES)
$(CC) $(LDFLAGS) $(@:=.o) -o [email protected]
문제는 하나 개의 .cpp 파일이있는 폴더로 변경되거나 추가되면, 다른 모든 파일이 업데이트되고 내가 할 경우 재 컴파일 것입니다이다.
이 문제를 해결하는 방법을 알려주세요.
감사합니다.
아니요, 문제가 해결되지 않습니다. –
헤더 파일입니까? – mattn
'$ (EXECUTABLE) : $ (SOURCES)'가 여러 단계에서 잘못되었음을 의미합니다. '$ (OBJECTS) : $ (SOURCES)'도 잘못되었습니다. 그리고 그것들이 문제를 일으키고 있습니다. –