多个文件的 makefile 目标错误 minix2

问题描述 投票:0回答:1

我试图在 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

我完全不知道问题是什么,非常感谢您的帮助。

c linux unix makefile minix
1个回答
0
投票

问题是我使用了空格而不是制表符。

$(PROG1): $(OBJ1)
    $(CC) $(CFLAGS) -o $(PROG1) $(OBJ1)
^^^ 
here

感谢 Jens 和 MadScientis 的帮助和建议。

© www.soinside.com 2019 - 2024. All rights reserved.