我在创建makefile文件方面有一些经验,但是我从来不需要创建一个可以创建两个可执行文件的makefile文件。我已经做了一些互联网搜索,并想到了以下代码:
all: main.c sieve.c
CC = gcc
CFLAGS = -Wall -g -ansi
OBJ = main.o avg.o max.o min.o sum.o
OBJ2 = sieve.o
ALL_OBJ = $(OBJ:%=%.o)
F = $(all)
stats: $(OBJ)
$(CC) $(CFLAGS) -o stats $(OBJ)
sieve: $(OBJ2)
$(CC) $(CFLAGS) -o sieve $(OBJ2)
sieve.o: sieve.c
$(CC) -c $(CFLAGS) sieve.c
main.o: avg.h main.c max.h min.h sum.h
$(CC) -c $(CFLAGS) main.c
avg.o: avg.c avg.h
$(CC) -c $(CFLAGS) avg.c
max.o: max.c max.h
$(CC) -c $(CFLAGS) max.c
min.o: min.c min.h
$(CC) -c $(CFLAGS) min.c
sum.o: sum.c sum.h
$(CC) -c $(CFLAGS) sum.c
.PHONY: all clean
clean:
$(RM) $(F) $(OBJ) $(OBJ2)
但是当我运行文件时,我收到以下消息:
make: Nothing to be done for `all'.
我不确定文件中是什么问题,有什么建议吗?