0

我首先要说的是,我没有像我希望的那样丰富的 makefile 经验,这实际上是我的第一次。我目前得到的错误是:

Makefile:1:缺少分隔符。停止。

当我尝试运行 make 命令时会发生这种情况。

据我所知,这意味着我在它尝试运行的第一行缺少一个硬标签,我认为至少。

据我所知,我并没有错过一个硬标签,所以我假设我只是在某个地方错过了整行。

CFLAGS = -ansi -Wall -pedantic
HEADERS = menu.h file1.h file2.h file3.h file4.h
OBJECTS = menu.o file1.o file2.o file3.o file4.o
CC = gcc

all:runprog

runprog:$(OBJECTS)
        $(CC) $(OBJECTS) -o runprog

menu.o:menu.c $(HEADERS)
        $(CC) $(CFLAGS)

file1.o:file1.c $(HEADERS)
        $(CC) $(CFLAGS)

file2.o:file2.c $(HEADERS)
        $(CC) $(CFLAGS)

file3.o:file3.c $(HEADERS)
        $(CC) $(CFLAGS)

file4.o:file4.c $(HEADERS)
        $(CC) $(CFLAGS)

clean:rm -f *.o runprog
4

1 回答 1

1

干净的目标用它的代码代替依赖项。此外,您的代码使用空格而不是制表符。此外,您忘记将.c文件添加到 CC 命令行。此外,您可以将所有规则简化为

CFLAGS = -ansi -Wall -pedantic
HEADERS = menu.h file1.h file2.h file3.h file4.h
OBJECTS = menu.o file1.o file2.o file3.o file4.o
CC = gcc

all:runprog

runprog:$(OBJECTS)
    $(CC) $(OBJECTS) -o runprog

%.o: %.c $(HEADERS)
    $(CC) -c -o $@ $< $(CFLAGS)

clean:
    rm -f *.o runprog
于 2013-10-12T03:15:35.330 回答