2012-04-10 11 views
23

Para el siguiente archivo make copiado a continuación, obtengo el error de separación faltante. Nada parece estar mal con el tabulador.Error en make makefile de comando: 18: *** separador faltante. Stop

OBJS = driver.o snapshot.o 
SHOBJS = malloc.o mymemory.o 
CC = g++ 
DEBUG = -g 
CFLAGS = -Wall -c $(DEBUG) 
LFLAGS = -Wall $(DEBUG) 
Snapshot: $(OBJS) 
    $(CC) $(LFLAGS) $(OBJS) -o Snapshot 
driver.o: snapshot.h driver.cpp 
    $(CC) $(CFLAGS) driver.cpp 
snapshot.o: mymemory.h snapshot.h snapshot.cpp 
    $(CC) $(CFLAGS) snapshot.cpp 
libmymemory.so: $(SHOBJS) 
    gcc -shared -o libmymemory.so malloc.o mymemory.o 
malloc.o: malloc.c 
    gcc -fPIC -g -c -Wall malloc.c 
mymemory.o: mymemory.cpp 
gcc -fPIC -g -c -Wall mymemory.cpp 
clean: 
\rm *.o *~ Snapshot 

Respuesta

45

La línea 18 es gcc -fPIC -g -c -Wall mymemory.cpp. Make espera un separador, típicamente :. No está detectando esta línea como un comando. Olvidaste la intención: tienes espacios donde deberías tener una pestaña.

Los buenos editores resaltan las líneas de archivo que comienzan con espacios pero parecen que deberían comenzar con una pestaña en su lugar.

+2

Parece que el problema fue con mi gedit, que había establecido Tab como espacios. De ahí el error. ¡¡¡Gracias!!! – subramanian

+4

deja el editor de texto pobre solo - el problema es 'make' ser estúpido: \ –

1

No sé si es preciso o un artefacto de pegar el código en línea, pero la sangría para los dos últimos comandos del archivo parece que es más pequeño que los comandos encima de ella. Verifique su espacio cuidadosamente.

13

He visto este mensaje de error cuando un archivo usa espacios en lugar de carácter (s) de tabulación al comienzo de una línea en el archivo MAKE.

4

Esto sucede principalmente si copia y pega el código de internet. Elimine todos los espacios de las líneas sangradas con la tecla Eliminar. Y luego presione la tecla de tabulación, solo una vez por línea.

Guárdalo e intenta ejecutar el archivo de nuevo. Debería funcionar ahora. Esto funcionó para mí.

Cuestiones relacionadas