0
我試圖將目標文件(.o文件)生成到一個單獨的文件夾中。它運作良好。問題是生成的目標文件沒有放入我想要的文件夾中。以下是我的makefile:把目標文件放到一個單獨的文件夾中GNU make
OBJDIR :=objdir
SOURCES=$(wildcard ./src/*.c)
OBJS=$(patsubst %.c, %.o, $(SOURCES))
vpath %.h ./src
vpath %.c ./src
optest : $(OBJS)
cc -o optest $(OBJS)
$(OBJDIR)/main.o : add.h mul.h did.h
$(OBJDIR)/add.o : add.h
$(OBJDIR)/mul.o : mul.h
$(OBJDIR)/did.o : did.h
$(OBJS): | $(OBJDIR)
$(OBJDIR):
mkdir $(OBJDIR)
clean :
rm -rf $(OBJDIR)
rm -f optest
我的.h和.c文件被放在./src
文件夾中。上面的makefile的結果是所有的目標文件都放在./src
文件夾中,而不是objdir
文件夾。任何人都可以提出任何建議嗎?
您正在覆蓋'%.c':這裏的文件的規則:'$(OBJDIR)/main.o:add.h mul.h did.h' –