web-dev-qa-db-ja.com

Makefile-区切り文字がありません

可能性のある複製:
エラーを作成:セパレータがありません

Makefileに次のコードがあります。

PROG = semsearch
all: $(PROG)
%: %.c
gcc -o $@ $< -lpthread

clean:
rm $(PROG)

そしてエラー

missing separator. stop.

誰か助けてくれますか?

72
user1827257

gccおよびrmで始まる行の前にハードタブを置く必要があります。 makeルールのコマンドは、タブで開始する必要があります(同じ行のセミコロンに続く場合を除く)。結果は次のようになります。

PROG = semsearch
all: $(PROG)
%: %.c
        gcc -o $@ $< -lpthread

clean:
        rm $(PROG)

一部のエディターは、ハードタブではなく一連のスペースを挿入するように構成されている場合があります。これらの行の先頭にスペースがある場合は、「区切り文字の欠落」エラーも表示されます。ハードタブの挿入に問題がある場合は、セミコロンを使用します。

PROG = semsearch
all: $(PROG)
%: %.c ; gcc -o $@ $< -lpthread

clean: ; rm $(PROG)
203
Jens