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
  […]

相关内容