template examples create c makefile

c - examples - makefile java



makefile: 4:*** separador perdido. Detener (8)

El punto clave fue "HARD TAB" 1. Verifique si usó TAB en lugar de espacios en blanco 2. Revise su .vimrc para "set tabstop = X"

Este es mi makefile:

all:ll ll:ll.c gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $< clean : /rm -fr ll

Cuando intento make clean o make make , recibo este error:

:makefile:4: *** missing separator. Stop.

¿Cómo puedo arreglarlo?


En VS Code, simplemente haga clic en "Espacio: 4" en la esquina recta y cámbiela a la pestaña al editar su Makefile.


Es una pregunta bastante antigua, pero aún me gustaría decir acerca de una opción más usando el editor vi/vim para visualizar las pestañas. Si tiene vi/vim instalado, abra un Makefile (por ejemplo, vim Makefile ) e ingrese :set list . Esto mostrará el número de pestañas insertadas como a continuación,

%-linux: force$ ^I@if [ "$(GCC_VERSION)" = "2.96" ] ; then /$ ^I^Iecho ===== Generating build tree for legacy $@ architecture =====; /$ ^I^I$(CONFIGURE) $(CWD) $@ legacy; /$ ^Ielse /$ ^I^Iecho ===== Generating build tree for $@ architecture =====; /$ ^I^I$(CONFIGURE) $(CWD) $@; /$ ^Ifi$ ^Icd build-$@;make$


Esto se debe a que la pestaña es reemplazada por espacios. Para deshabilitar esta característica vaya a

gedit-> editar-> preferencias-> editor

y remover cheque para

" reemplazar pestaña con espacio "


Si alguno de ustedes está utilizando un producto de Intellij, la solución para esto es la siguiente:

  1. Vaya a Preferencias> Editor> Estilo de código
  2. Aquí debe seleccionar el tipo de archivo relacionado con su problema. Pero lo más probable es que necesite seleccionar Other File Types .
  3. En la pestaña abierta, marque la casilla de verificación Use tab character y tenga cuidado, el Tab size y los valores de Indent deben ser 4.

Si está utilizando mcedit para la edición de makefile. Tienes que ver la siguiente marca.


Siempre debe escribir el comando después de una "pestaña" y no espacios en blanco.

Esto se aplica a la línea "gcc" (línea # 4) en su caso. Necesitas insertar la pestaña antes de gcc.

También reemplace / rm -fr ll con "rm -fr ll". Insertar pestañas antes de este comando también


makefile tiene una relación muy estúpida con las pestañas, todas las acciones de cada regla están identificadas por pestañas ...... y los 4 espacios no hacen una pestaña, solo una pestaña hace una pestaña ...

para verificar si uso el comando cat -e -t -v makefile_name

muestra la presencia de pestañas con ^ I y los finales de línea con $; ambos son vitales para garantizar que las dependencias terminen correctamente y las pestañas marcan la acción de las reglas para que sean fácilmente identificables con la utilidad make ...

ejemplo:

Kaizen ~/so_test $ cat -e -t -v mk.t all:ll$ ## here the $ is end of line ... $ ll:ll.c $ ^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$ ## the ^I above means a tab was there before the action part, so this line is ok . $ clean :$ /rm -fr ll$ ## see here there is no ^I which means , tab is not present .... ## in this case you need to open the file again and edit/ensure a tab ## starts the action part

espero que esto ayude !!