我在c上创建一个项目,当我创建我的Makefile并尝试运行它时,它给了我这个错误:
Makefile:1: *** missing separator. Stop.
Run Code Online (Sandbox Code Playgroud)
我的makefile代码是:
CC=gcc
OBJ=./objetos
INC=./include
FON=./aqsFonte
BIB=./bibliotecas
OPBIB=-lBiblioteca
ProjetoFinal: libFinal.a
$(CP) $(FON)/ProjetoFinal.c -I$(INC) -L$(BIB) $(OPBIB) -o ProjetoFinal
Bibliotecas.a: Caminho.o Libs_Defines.o Matrizes.o Proc_Imagens.o Vetores.o
ar -q $(BIB)/libFinal.a Caminho.o ibs_Defines.o Matrizes.o Proc_Imagens.o Vetores.o
Caminho.o:
$(CP) $(FON)/Caminho.c -o Caminho.o
Libs_Defines.o :
$(CP) $(FON)/Libs_Defines.c -o Libs_Defines.o
Matrizes.o:
$(CP) $(FON)/Matrizes.c -o Matrizes.o
Proc_Imagens.o:
$(CP) $(FON)/Proc_Imagens.c -o Proc_Imagens.o
Vetores.o:
$(CP) $(FON)/Vetores.c -o Vetores.o
Run Code Online (Sandbox Code Playgroud)
此外,我猜它都是正确的标签.
Fil*_*ves 28
这是一个标签问题.某些文本编辑器可能会使用空格替换制表符,请确保使用不会弄乱它的正确文本编辑器.在vi或任何其他基本编辑器中打开makefile,然后重写该makefile.
请注意,在每个目标规则之后,必须在行的开头放置一个单独的选项卡.在该选项卡之后的所有内容都会传递给shell(可以有更多选项卡,空格和任何您想要的内容,但请记住,行的开头必须有一个选项卡).
Lee*_*eor 11
你可以尝试跑 -
perl -pi -e 's/^ */\t/' Makefile
Run Code Online (Sandbox Code Playgroud)
(保存备份后当然)
小智 8
这也可能是由于 .PHONY 和目标之间缺少冒号所致
.PHONY all
all:
<tab><do this>
Run Code Online (Sandbox Code Playgroud)
抛出错误,而下面工作正常
.PHONY: all
all:
<tab><do this>
Run Code Online (Sandbox Code Playgroud)