C - Makefile可能缺少一行

时间:2013-10-12 03:02:59

标签: c gcc makefile separator

我首先要说的是,我没有尽可能多的经验,这实际上是我的第一个。 我目前得到的错误是:

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

1 个答案:

答案 0 :(得分:1)

clean目标的代码位于依赖项的位置。此外,您的代码使用空格而不是制表符。此外,您忘记将.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