1
我試圖把一個makefile文件放在一起,它將從一個目錄(例如,src
)中獲取源文件,將它們編譯到另一個目錄中的目標文件中(例如,build
)然後將這些文件從主目錄中創建一個靜態庫。在不同目錄中有源文件和目標文件的自動生成文件
這裏是我的努力迄今:
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