2010-04-01 20 views
9

Essayer d'installer Git, je courais configurer et faire, mais a reçu le message d'erreur suivant:erreur Makefile: fin de ligne inattendue vu

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

Le Makefile ressemble:

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') 

Qu'est-ce qui cause l'erreur?

Les informations suivantes peuvent ou peuvent ne pas être pertinents:

  • J'ai essayé d'installer Git 1.7.0.3 sur SunOS 5.9 (Solaris 9) dans un répertoire sur mon compte.
  • La version gcc est 3.4.2 (plus ancienne que la version de 3.4.6 indiquée par sunfreeware.com).
  • Je n'ai pas les privilèges root.
+4

La version make serait plus pertinente que la version gcc. Peut-être est-il trop vieux pour supporter la directive '-include'? – Cascabel

+3

@Jefromi: ou ce n'est pas GNU Make ...Sun Make ne comprend probablement pas '-include' - et attendra soit un signe deux-points, soit un signe égal à la ligne 220 (puisqu'il ne peut pas s'agir d'une commande car le premier caractère n'est pas un onglet), et toutes les autres lignes les commentaires, les règles (avec un deux-points) ou les macros (avec un égal) et la ligne 220 ne correspond à aucun d'entre eux. –

+1

Si votre Makefile dit vraiment 'øø' alors il est en quelque sorte devenu corrompu. Cela devrait être '||'. Essayez de télécharger à nouveau. – mark4o

Répondre

0

Assurez-vous que vous avez réellement tabulé la ligne et qu'il ne s'agit pas de tous les espaces. J'ai eu ce problème, mais j'ai découvert que la commande n'était pas correctement placée dans les onglets, et c'est pourquoi j'ai rencontré cette erreur.

+0

@Diavolche: Seul le début de la ligne 219 dans l'extrait de code a un onglet. –

+0

Dans mon cas, la ligne n'était pas correctement indentée (devrait commencer par un onglet). Pourquoi cela m'a été dépassé. – vesperto

1

Son problème avec votre "make", installez "make-3.81.tar" puis essayer

3

Utiliser gmake au lieu de make.

Généralement solaris a deux commandes, gmake et make. Dans ce gmake est GNU style make commande, et make est solaris style make commande. J'espère que vous avez écrit votre makefile dans le style GNU. Donc, utilisez la commande gmake.

11

L'utilisation de gmake sur SunOS au lieu de make a résolu ce problème pour moi.

+0

également changer la ligne "= cc" pour être plutôt "= gcc" – jim

2

Cela peut être dû aux terminaisons de ligne DOS (CRLF) dans votre fichier makefile. J'ai juste eu un problème semblable et l'ai résolu en exécutant dos2unix sur le makefile. Linux make semble imprudent avec le même makefile.

0

Je suis arrivé à cette erreur avec 2 makefiles simples, dont l'un fonctionnait, et un qui a produit l'erreur.

Les deux avaient des lignes correctement étiquetées, et les deux avaient des fins de ligne "CRLF".

Pour une raison ou une autre, j'ai réussi à résoudre le problème en changeant les fins de ligne à « LF », mais je suis confus quant à la raison pour laquelle l'autre makefile a été analysé avec succès, même si elle avait des terminaisons « CRLF ». Il y a, cependant, un indice: les premiers une ou deux fois, « faire » a une autre erreur:

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

Après avoir ouvert le makefile dans un éditeur de texte, et en ajoutant une ligne se terminant à la fin, il a commencé produisant l'erreur de l'OP.

Dans cette situation, il est bon d'avoir un éditeur capable d'afficher les fins de ligne et les tabulations.