在尝试编译我的 时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
[…]