2009-05-26 6 views
6

Cuando estoy compilando mi código con makefiles (tengo 12 makefiles), hay un error que dice make.exe[1]: Leaving directory Error 2 ¿cuál es el motivo de esto? ¿Qué significa "Error 2 o Error 1"?¿Salir del directorio .....?

Respuesta

8

Al realizar impresiones "Error 2" en este contexto, solo significa que hubo un error en una invocación recursiva de make. Tienes que mirar los mensajes de error que preceden a ese mensaje para determinar cuál era el problema real, en el submake. Por ejemplo, dado un Makefile así:

all: 
     $(MAKE) -f sub.mk 

... y un sub.mk así:

all: 
     @exit 1 

Cuando corro GNU make, se imprime el siguiente:

gmake -f sub.mk 
gmake[1]: Entering directory `/tmp/foo' 
gmake[1]: *** [all] Error 1 
gmake[1]: Leaving directory `/tmp/foo' 
gmake: *** [all] Error 2 

Error 2 me dice que hubo un error de algún tipo en el submenú. Tengo que mirar arriba de ese mensaje, al mensaje Error 1 del propio submake. Ahí puedo ver que algún comando invocado al intentar construir all salió con el código de salida 1. Desafortunadamente, no existe realmente un estándar que defina códigos de salida para aplicaciones, más allá del trivial "código de salida 0 significa OK". Debe observar el comando particular que falló y verificar su documentación para determinar qué significa el código de salida específico.

Estos mensajes de error no tienen nada que ver con los valores errno de Unix, como han indicado otros. El "2" más externo es solo el código de error que se asigna cuando un submake tiene un error; el "1" interno es solo el código de salida de un comando fallido. Podría ser tan fácilmente como "7" o "11" o "42".

Cuestiones relacionadas