写了这样一段makefile
CFLAGS = -g
INCLUDES = -I./header
SRC = \
./stub/stub.c
./stub/stub1.c
./stub/stub2.c
LIBSRC = \
./stub/memstub.c \
COMMONSRC = \
./common/log.c
OBJ = $(SRC:./stub/%.c=Obj/%.obj)
LIBOBJ=$(LIBSRC:./stub/%.c=Obj/%.obj)
COMMONOBJ=$(COMMONSRC:./common/%.c=Obj/%.obj)
BIN = ./Bin/stub.o
.SUFFIXES: .obj
all: $(BIN)
$(BIN): $(OBJ) $(LIBOBJ) $(COMMONOBJ)
$(CC) $(CFLAGS) $(INCLUDES) -o $*.o $< $(LIBOBJ) $(COMMONOBJ)
$(OBJ): $(SRC)
$(CC) -c $(CFLAGS) $(INCLUDES) -o $*.obj $<
$(LIBOBJ): $(LIBSRC)
$(CC) -c $(CFLAGS) $(INCLUDES) -o $*.obj $(LIBSRC)
$(COMMONOBJ): $(COMMONSRC)
$(CC) -c $(CFLAGS) $(INCLUDES) -o $*.obj $(COMMONSRC)
clean:
rm Obj/*
如下这段make代码:
SRC = \
./stub/stub.c
./stub/stub1.c
./stub/stub2.c
是无法一个一个编译的,它只编译第一个,不知道自动变量该怎么写?
求教!
SRC = \
./stub/stub.c \
./stub/stub1.c \
./stub/stub2.c
换行的时候要有换行符\。
试过了,还是不行!
@青木阁_阁主: 不可能不行。。。
@Wang Hui: 自动变量$<取的是第一个,不会自己递增。而$^取全部,所以。。。
这是什么语言?
楼上的高手啊