makefile - configurar - Comete un error: falta el separador
makefile windows (8)
Como se indica en el manual en línea , la causa más común de ese error es que las líneas se sangran con espacios en blanco cuando se esperan caracteres de tabulación.
Correcto
target: /tcmd
donde / t es TAB
Incorrecto
target: cmd
Me aparece el siguiente error al ejecutar make
:
Makefile:168: *** missing separator. Stop.
¿Qué está causando esto?
El siguiente código de Makefile funcionó:
obj-m = hello.o
all:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
En mi caso, el error causado a continuación. Intenté ejecutar comandos globalmente, es decir, fuera de cualquier objetivo.
UPD. Para ejecutar el comando globalmente, uno debe estar formado adecuadamente. Por ejemplo, comando
ln -sf ../../user/curl/$SRC_NAME ./$SRC_NAME
se convertiría:
$(shell ln -sf ../../user/curl/$(SRC_NAME) ./$(SRC_NAME))
En mi caso, este error fue causado por la falta de un simple espacio. Tenía esto si bloque en mi archivo MAKE:
if($(METHOD),opt)
CFLAGS=
endif
que debería haber sido:
if ($(METHOD),opt)
CFLAGS=
endif
con un espacio después de si.
Este es un error de sintaxis en su Makefile. Es bastante difícil ser más específico que eso, sin ver el archivo en sí, ni la (s) porción (es) relevante (s) del mismo.
Mi error fue en una línea de declaración de variables con una extensión de varias líneas. Tengo un espacio posterior después de la "/" que hizo que la línea sea una continuación no válida.
MY_VAR = /
val1 / <-- 0x20 there caused the error.
val2
Para mí, el problema era que tenía algunos # ...
final de línea # ...
comentarios incrustados dentro de una define ... endef
definición de variable de varias líneas. Eliminar los comentarios hizo que el problema desapareciera.
Solo por sonrisas, y en caso de que alguien más se encuentre con un error similar:
Obtuve el infame error de "separación faltante" porque había invocado una regla que define una función como
($eval $(call function,args))
más bien que
$(eval $(call function,args))
es decir ($eval $(call...
lugar de $(eval $(call...