1
디렉토리 (예 : src
)에서 소스 파일을 가져 와서 다른 디렉토리의 오브젝트 파일 (예 : build
)로 컴파일하는 메이크 파일을 함께 만들려고합니다. 그런 다음 해당 파일을 가져 와서 기본 디렉토리에서 정적 라이브러리를 만듭니다. 여기 다른 디렉토리에 소스 파일과 오브젝트 파일이있는 자동 makefile
LIBNAME := test
LIBNAME := lib$(LIBNAME).a
CC = g++
CFLAGS := -O0 -Wall -g -fPIC
INCLUDE := include
SOURCE := src
BUILD := build
CPPFILES := $(foreach dir, $(SOURCE)/, $(notdir $(wildcard $(SOURCE)/*.cpp)))
OBJFILES := $(addprefix $(BUILD)/, $(CPPFILES:.cpp=.o))
all: $(LIBNAME) $(OBJFILES)
$(LIBNAME): $(OBJFILES)
ar rcs $(LIBNAME) $(OBJFILES)
.cpp.o:
$(CC) $(CFLAGS) -I$(INCLUDE) -c $< -o [email protected]
clean:
rm -rf $(BUILD)
저에게이주는 :
make: *** No rule to make target `build/point.o', needed by `libtest.a'. Stop