0

最初に言っておきますが、私は思ったほど多くのメイクファイルの経験がありません。実際、これは私の最初の経験です。私が現在得るエラーは次のとおりです。

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 に答える