2010-10-27 13 views
6

Ho un programma molto semplice c:Makefile: Error1

int main() 
{ 
    return(1); 
} 

e un semplice Makefile:

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

Tuttavia, quando si digita make ricevo il seguente messaggio di errore:

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

Che cosa evidente mi manca?

risposta

20

Esegue le uscite con un errore se qualsiasi comando eseguito viene chiuso con un errore.

Poiché il programma è in uscita con un codice di 1, make lo vede come un errore e quindi restituisce lo stesso errore stesso.

Si può dire fare di ignorare gli errori mettendo un - all'inizio della riga come questa:

-./tmp 

Si può vedere di più sulla gestione nel makefile here errore.

+0

Sapevo che sarebbe stato ovvio. Grazie (a tutti) per le risposte molto veloci – csgillespie

+2

+1, per la parte da ignorare. – codaddict

+0

Sì, mi sono imbattuto in questo errore esatto pochi mesi fa. Ho dovuto cercare nuovamente la sintassi per ignorare gli errori, non è qualcosa che uso abbastanza da ricordare. –

4

Si sta restituendo un codice di errore di 1 dall'applicazione. È compito di Make segnalare questo come un errore!

4

Questo è perché il programma sta tornando 1.

Rende fa la compilazione con gcc, che va bene (rendimenti 0) in modo si procede con l'esecuzione, ma il programma restituisce un valore diverso da zero, in modo da fare segnala questo come un errore.

Un programma in caso di esito positivo deve restituire 0 e restituire un valore diverso da zero in caso contrario.