我想有兩個不同的文件夾Makefile文件不會使所有目標
dobjects
編譯OBJ文件:凡對象具有調試符號(使用gcc的-g選項)sobjects
:其中對象編譯時沒有調試符號。
源文件相同,
我有以下生成文件。
CC = gcc
CFLAGS = -Wall
OBJS = a.o b.o
SRCS = a.c b.c
SOBJS_DIR = sobjects
DOBJS_DIR = dobjects
SOBJS = $(addprefix $(SOBJS_DIR)/, $(OBJS))
DOBJS = $(addprefix $(DOBJS_DIR)/, $(OBJS))
all: release debug
release: $(SOBJS)
debug: $(DOBJS)
$(DOBJS_DIR)/%.o: CFLAGS += -g
$(DOBJS_DIR)/%.o $(SOBJS_DIR)/%.o: %.c
$(CC) $(CFLAGS) -c $< -o [email protected]
clean:
rm dobjects/*
rm sobjects/*
但每次我試圖「製造」只有一個目標是由時間。
$ make
gcc -Wall -c a.c -o sobjects/a.o
gcc -Wall -c b.c -o sobjects/b.o
$ make
gcc -Wall -g -c a.c -o dobjects/a.o
gcc -Wall -g -c b.c -o dobjects/b.o
任何幫助,將不勝感激
附註(有一天你會明白這一點):「建立在他們都應該放在和使用'目錄文件VPATH'找到那些源文件「。 – Shahbaz