2010-10-27 25 views
6

Tengo un programa muy simple c:Makefile: ERROR1

int main() 
{ 
    return(1); 
} 

y un Makefile sencillo:

all: 
    gcc -ansi -pedantic -o tmp tmp.c 
    ./tmp 

Sin embargo, cuando escribo make me sale el siguiente mensaje de error:

$ make 
gcc -ansi -pedantic -o tmp tmp.c 
./tmp 
make: *** [all] Error 1 

¿Qué cosa obvia me falta?

Respuesta

20

Realiza salidas con un error si algún comando que ejecuta se cierra con un error.

Como su programa está saliendo con un código de 1, make lo ve como un error y luego devuelve el mismo error.

Se puede decir que hacer para ignorar los errores mediante la colocación de un - al comienzo de la línea como la siguiente:

-./tmp 

se puede ver más información sobre el manejo de archivos make here error.

+0

Sabía que iba a ser obvio. Gracias (a todos) por las respuestas muy rápidas – csgillespie

+2

+1, para la parte de ignorar. – codaddict

+0

Sí, me encontré con este error exacto hace unos meses. Tuve que volver a buscar la sintaxis para ignorar los errores, no es algo que use lo suficiente como para recordar. –

4

Está devolviendo un código de error de 1 de su aplicación. ¡El trabajo de Make es informar esto como un error!

4

Esto se debe a que su programa está volviendo 1.

Hace que hace la compilación con gcc, que va más finas (retornos 0) por lo que procede a la ejecución, pero su programa devuelve un valor distinto de cero, por lo que hacen informa esto como un error.

Un programa de finalización correcta debe devolver 0 y devolver un valor distinto de cero en caso contrario.