Makefile:12: *** 区切り記号がありません。やめて[繰り返し]

Makefile:12: *** 区切り記号がありません。やめて[繰り返し]

鉱山をコンパイルしようとすると、makefile同じエラーメッセージが繰り返し表示されます。

Makefile:12: *** missing separator. Stop

タブを削除し、スペースを削除し、makefile完全に削除し、すべてを試しましたが、まだ同じメッセージが表示されます。助けてください。

CC = g++
CFLAGS = -std=c++11
TARGET = proj1.x
SOURCES = driver.cpp
    
proj1.x: driver.cpp
    g++ -std=c++11 -o proj1.x driver.cpp
        
.PHONY: clean
   
clean:
    rm -f proj1.x

答え1

書かれた通りコメント、ここで問題はTabインデントを使用しないことはほぼ確実ですMakefileタグを削除しました「、これは問題だ。

タブ(追加のスペースにインデントされず、正しいタブ、ASCII文字9)を使用するようにファイルを変換し、私の場合に記載されているエラーが消えたことを確認しました。

# Your makefile
make
  makefile:7: *** missing separator.  Stop.

# Convert indents to tab
mv -f makefile{,.old} && sed -E 's/^ {3,}/\t/' makefile.old >makefile

# Retry your makefile
make
  g++ -std=c++11 -o proj1.x driver.cpp
  […]

関連情報