我首先要说的是,我没有尽可能多的经验,这实际上是我的第一个。 我目前得到的错误是:
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
答案 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