我试图在 minix2 上编译一些文件,但我不断收到错误:
make: No targets provided in Makefile near line 17
我的 makefile 看起来像这样:
CC = cc
CFLAGS = -O -D_MINIX -D_POSIX_SOURCE
PROG1 = main
PROG2 = functions
PROG3 = superblock
PROG4 = inode
OBJ1 = main.o
OBJ2 = functions.o
OBJ3 = superblock.o
OBJ4 = inode.o
all: $(PROG1) $(PROG2) $(PROG3) $(PROG4)
$(PROG1): $(OBJ1)
$(CC) $(CFLAGS) -o $(PROG1) $(OBJ1) <--- line 17
$(PROG2): $(OBJ2)
$(CC) $(CFLAGS) -o $(PROG2) $(OBJ2)
$(PROG3): $(OBJ3)
$(CC) $(CFLAGS) -o $(PROG3) $(OBJ3)
$(PROG4): $(OBJ4)
$(CC) $(CFLAGS) -o $(PROG4) $(OBJ4)
main.o: main.c
$(CC) $(CFLAGS) -c main.c
functions.o: functions.c
$(CC) $(CFLAGS) -c functions.c
superblock.o: superblock.c
$(CC) $(CFLAGS) -c superblock.c
inode.o: inode.c
$(CC) $(CFLAGS) -c inode.c
clean:
rm -f *.o $(PROG1) $(PROG2) $(PROG3) $(PROG4)
.PHONY: all clean
我完全不知道问题是什么,非常感谢您的帮助。
问题是我使用了空格而不是制表符。
$(PROG1): $(OBJ1)
$(CC) $(CFLAGS) -o $(PROG1) $(OBJ1)
^^^
here
感谢 Jens 和 MadScientis 的帮助和建议。