IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Makefile:11: missing separator. Stop.


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 139
    Points : 48
    Points
    48
    Par défaut Makefile:11: missing separator. Stop.
    Bonjour,

    Je suis face à cette erreur lorsque je tape la commande "make" pour réaliser une installation. A la ligne 11, voilà ce que j'ai :

    Lorsque je commente cette ligne, j'ai la même erreur à la ligne 56 où se trouve l'instruction suivante :

    je ne sais pas à quoi correspond ce nom entouré du caractère @.

    En navigant dans l'arborescence du programme que j'essaie d'installer, je constate que MCONFIG est un exécutable (je ne peux pas l'affirmé pour MAKEFILE_LIBRARY car je n'ai rien trouvé).

    Avant d'avoir cette erreur, j'avais l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     /bin/sh^M: bad interpreter: No such file or directory
    que j'ai résolue en ouvrant vi et en faisant .

    J'ai vu que mon erreur pouvait être dû au fait que des espaces pourraient être utilisés à la place des tabulations dans le Makefile, mais la ligne de l'erreur (qui ne contient pas d'espace à gauche) ne me paraît pas entrer dans ce cas.

    Si quelqu'un a déjà été confronté à ce genre de soucis, merci de me sortir d'affaire.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    /bin/sh^M: bad interpreter: No such file or directory
    Erreur classique de transfert d'un fichier ASCII de Windows vers Unix.

    N'ayant pas grand chose comme code de ton makefile :
    Si je ne reconte pas de connerie @MCONFIG@ est une variable shell Windows, l'équivalent Unix est $MCONFIG.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mala92 Voir le message
    Erreur classique de transfert d'un fichier ASCII de Windows vers Unix.
    Pour préciser même un peu plus :

    Dans un fichier texte standard (donc un fichier .c ou un makefile entre autres), sous Windows, les lignes sont terminées par ^M (CTRL-M) ..

    Ce qui n'est pas reconnu comme fin de ligne sous unixoides..

    Il faut donc soit enregistrer les fichiers au départ, sous Windows, avec soit WordPad, NotePad, ou si on les crée par programme forcer un "\n" à la fin de la ligne, sinon si on ne peut rien à la création des fichiers il faut faire passer une moulinette, automatique ou non ("replace" dans (x)emacs par exemple) pour transformer les CTRL-M (^M) en "\n" ou "return".
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Il existe une commande qui permet de faire la conversion :
    dos2unix
    Dans les ubuntu récents (à partir de 10.04), la commande est :
    fromdos
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Pour préciser même un peu plus :

    Dans un fichier texte standard (donc un fichier .c ou un makefile entre autres), sous Windows, les lignes sont terminées par ^M (CTRL-M) ..

    Ce qui n'est pas reconnu comme fin de ligne sous unixoides..

    Il faut donc soit enregistrer les fichiers au départ, sous Windows, avec soit WordPad, NotePad, ou si on les crée par programme forcer un "\n" à la fin de la ligne, sinon si on ne peut rien à la création des fichiers il faut faire passer une moulinette, automatique ou non ("replace" dans (x)emacs par exemple) pour transformer les CTRL-M (^M) en "\n" ou "return".
    Pour être même plus exact, les fins de lignes se terminent par \r\n sous Windows mais seulement \n sous Unix. Quand le fichier est crée sous Windows puis lu sous Unix, le \r n'est pas interprété (il apparait comme ^M) mais le \n est bien interprété. Il s'agit donc de supprimer les \r et non de les remplacer par des \n, comme l'indique les codes donnés ici.

Discussions similaires

  1. makefile : missing separator
    Par 01Please dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 09/04/2015, 16h10
  2. code shell erreur make : missing separator
    Par amissan51 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 27/05/2012, 19h27
  3. Automake: missing separator. Stop.
    Par Ceylo dans le forum Développement OS X
    Réponses: 1
    Dernier message: 18/07/2007, 15h21
  4. Makefile
    Par Wisefool dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 03/11/2003, 17h41
  5. Compilation avec un Makefile
    Par Mau dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 28/02/2003, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo