我写了一个 MakeFile,但我需要它来创建文件夹 OBJ,所以,为此,我尝试了很多东西......基于此链接: https ://stackoverflow.com/questions/ask
所以,那是我的makefile
IDIR =.
CC=gcc
CFLAGS=-I$(IDIR) -Wall -g
SRCDIR=src
ODIR=obj
LIBS=-ltest
_OBJ = main.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))
OUTPUTDIR = ../bin
$(ODIR)/%.o: $(SRCDIR)/%.c
$(CC) -c -o $@ $< $(CFLAGS)
$(OUTPUTDIR)/test: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
我需要创建 obj 文件夹,我尝试了这个想法:
OBJDIR := objdir
OBJS := $(addprefix $(OBJDIR)/,foo.o bar.o baz.o)
$(OBJDIR)/%.o : %.c
$(COMPILE.c) $(OUTPUT_OPTION) $<
all: $(OBJS)
$(OBJS): | $(OBJDIR)
$(OBJDIR):
mkdir -p $(OBJDIR)
和这个:
MKDIR_P = mkdir -p
.PHONY: directories
all: directories program
directories: ${OUT_DIR}
${OUT_DIR}:
${MKDIR_P} ${OUT_DIR}
但显然每次我调用makefile时,它都会忽略创建目录OBJ的命令并直接开始编译......
如何使 makefile 创建目录?