一般来说,我的 makefile 有效。既然有人会问,这里供参考:
HEADERS = *.h
OBJS = *.o
MYFORWARDS = *.c
WARNS = -Wall
CC = gcc
CFLAGS = -mwindows -Wall
LDFLAGS = -mwindows -lkernel32 -luser32
all : my.exe
my.exe : ${OBJS}
${CC} -o "$@" ${OBJS} ${LDFLAGS}
%.o : %.c ${HEADERS}
${CC} ${CFLAGS} -c $< -o $@
我喜欢这样*.o
,*.c
所以每次添加.c时我都不必编辑 makefile 。
Make通常向后工作:对于每个目标,看看它的一个来源是否发生了变化,如果是,则重建。
我不想改变这一点,因为这是 make 的全部意义,但是有一个例外。
问题是,当我创建一个新的.c文件时,还没有.o文件,因此(从.o向后工作)它甚至没有意识到有一个新的.c。
到目前为止,我所做的是每次创建新的.c时,我都会手动创建新的.o文件。
有没有更好的办法?提前致谢。