2010-04-01 1 views
9

per l'installazione Git, ho corso configurare e fare, ma ha ottenuto il seguente messaggio di errore:errore Makefile: fine imprevista di linea visto

make: Fatal error in reader: Makefile, line 221: Unexpected end of line seen

Il Makefile assomiglia:

218: GIT-VERSION-FILE: FORCE 
219:   @$(SHELL_PATH) ./GIT-VERSION-GEN 
220: -include GIT-VERSION-FILE 
221: 
222: uname_S := $(shell sh -c 'uname -s 2>/dev/null øø echo not') 

cosa sta causando l'errore?

Le seguenti informazioni può o non può essere rilevante:

  • Ho provato ad installare Git 1.7.0.3 su SunOS 5.9 (Solaris 9) in una directory nel mio conto.
  • La versione gcc è 3.4.2 (precedente alla versione di 3.4.6 dichiarata da sunfreeware.com).
  • Non ho i privilegi di root.
+4

La versione di make sarebbe più rilevante della versione di gcc. Forse è troppo vecchio per supportare la direttiva '-include'? – Cascabel

+3

@Jefromi: o non è GNU Make ...il Sun Make probabilmente non comprende '-include' - e si aspetta un segno due punti o un segno di uguale sulla riga 220 (poiché non può essere un comando perché il primo carattere non è una scheda) e tutte le altre linee sono commenti, regole (con due punti) o macro (con un uguale) e la riga 220 non si adatta a nessuno di questi. –

+1

Se il tuo Makefile dice veramente "øø", in qualche modo è stato danneggiato. Dovrebbe essere '||'. Prova a scaricare di nuovo. – mark4o

risposta

0

Accertarsi di aver effettivamente inserito la riga nella scheda e che non siano tutti gli spazi. Ho avuto questo problema ma ho scoperto che il comando non era inserito correttamente e questo è il motivo per cui stavo correndo in questo errore.

+0

@Diavolche: solo l'inizio della riga 219 nel codice ha una scheda. –

+0

Nel mio caso la linea non era rientrata correttamente (dovrebbe iniziare con una scheda). Perché questo è stato -1'ed è oltre me. – vesperto

1

E 'un problema con il "fare", l'installazione "make-3.81.tar" e quindi provare

3

Uso gmake invece di make.

Generalmente solaris ha due comandi, gmake e make. In questo gmake è il comando GNU style make, e make è il comando di tipo solaris style. Spero che tu abbia scritto il tuo makefile in stile GNU. Quindi utilizzare il comando gmake.

11

L'utilizzo di gmake su SunOS anziché make ha risolto il problema per me.

+0

cambia anche la riga "= cc" anziché "= gcc" – jim

2

Ciò potrebbe essere dovuto alle terminazioni di riga DOS (CRLF) nel makefile. Ho appena avuto un problema simile e l'ho risolto eseguendo dos2unix sul makefile. Linux make sembra impassibile per lo stesso makefile.

0

Sono arrivato a questo errore con 2 semplici makefile, uno dei quali funzionava e uno che ha prodotto l'errore.

Entrambe avevano linee a schede correttamente ed entrambe avevano terminazioni di linea "CRLF".

Per un motivo o un altro, sono riuscito a risolvere il problema cambiando le terminazioni di linea per "LF", ma sono confuso sul motivo per cui l'altra makefile è stato analizzato con successo anche se aveva terminazioni "CRLF". V'è, tuttavia, un indizio: i primi uno o due volte, "fare" ha dato un altro errore:

mksh: Warning: newline is not last character... 

Dopo aver aperto il makefile in un editor di testo, e l'aggiunta di una linea che termina alla fine, è iniziato producendo l'errore dell'OP.

In questa situazione, è utile disporre di un editor in grado di visualizzare terminazioni e schede di linea.