Makefile을 배우려고합니다. 나는 일하는 작은 프로젝트를 해왔지만 지금은 연장했지만 운이 없다. 여기에 질문이 있습니다. 내가 subdirs에서 모든 파일을 컴파일하고 빌드/개체 디렉토리 (내가 일할 수없는)에 저장하고 빌드/개체 디렉토리에있는 파일에 바이너리를 연결하려고합니다. 여기에 내가 지금까지 얻었을 것입니다 :Makefile beginner help
#compiler vars
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
#build vars
INCLUDE=-I. -IFramework/ -IGame/
SOURCES=test.cpp
include Modules.mk
ifeq ($(mod3D), true)
SOURCES += $(mod3D_src)
INCLUDE += $(mod3D_include)
endif
ifeq ($(mod2D), true)
SOURCES += $(mod2D_src)
INCLUDE += $(mod2D_include)
endif
ifeq ($(modInput), true)
SOURCES += $(modInput_src)
INCLUDE += $(modInput_include)
endif
OBJECTS=$(SOURCES:.cpp=.o)
OUTPUT=game.bin
all: $(SOURCES) $(OUTPUT)
$(OUTPUT): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o [email protected]
.cpp.o: $(SOURCES)
$(CC) $(CFLAGS) $(INCLUDE) $< -o [email protected]
.PHONY: clean
clean:
-rm $(OUTPUT) $(OBJECTS)
Modules.mk
#Modules
mod3D=true
mod2D=true
modInput=true
mod3D_include=-IGraphics3D
mod2D_include=-IGraphics2D
modInput_include=-IInput
mod3D_src=Graphics3D/*.cpp
mod2D_src=#Graphics2D/*.cpp
modInput_src=Input/*.cpp
그것은 나에게 오류 제공합니다
make: *** No rule to make target `Graphics3D/*.o', needed by `game.bin'. Stop.
내가 잘못 뭐하는 거지 모르겠어요. 미리 감사드립니다. Gasim