我有这个目录结构:
./src包含 .cpp以及.h我需要的所有文件./bin应该包含.o暂时的和.bin永久的。此外,调用时应删除此文件夹make clean。./包含Makefile
这是我目前的Makefile:
CFLAGS = -Wall -pedantic -g
CC = g++
EXEC = flrfile
SRC_DIR = src
BIN_DIR = bin
OBJ = FixedLengthFieldsRecord.o FixedLengthRecordFile.o main.o
all: flrfile
../$(BIN_DIR)/%.o: $(SRC_DIR)%.cpp $(SRC_DIR)%.h
$(CC) $(CFLAGS) -c $(SRC_DIR)%.cpp -o $@
$(EXEC): $(OBJ)
@mkdir -p bin
$(CC) $(CFLAGS) $(BIN_DIR)/$(OBJ) -o $(BIN_DIR)/$(EXEC)
.PHONY : clean
clean:
-rm -rf $(BIN_DIR)
当我运行时make,我收到此错误:
make: *** No rule to make target `FixedLengthFieldsRecord.o', needed by `flrfile'. Stop.
为什么是这样?
PS:另外,我怎样才能使OBJ = FixedLengthFieldsRecord.o FixedLengthRecordFile.o main.o更通用?我不想写所有.o...