gpt4 book ai didi

c++ - Makefile: 将 .o 放在不同目录中的规则

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:43 24 4
gpt4 key购买 nike

<分区>

我有这个目录结构:

  • ./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...

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com