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 :

invalid preprocessing directive #"41 "


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 87
    Par défaut invalid preprocessing directive #"41 "
    bonjour tout le monde,

    j'ai un soucis en compilant une fonction c ecrité d'une manière "bizaroiide"! au débute de la fonction je trouve des include de cette manière: # "34 "file.h" 2
    j'ai essayé de voir qu'est ce que ça veut dire, et si j'ai bien compris c'est la forme des output du preprocessing...donc j'ai pensé à compiler en ignorant la phase du preprocesseur.
    pour ceci j'ai utilisé l'option -fpreproce​ssed, mais ça marche toujours pas !
    le compilateur arrete en m'affichant des erreur du genre
    invalid preprocessing directive #"41 "

    Est ce que quelqu'un d'entre vous peut me proposer une solution? une option qui ignore la phase de preprocessing? et est ce faisable dèja?!!!!

    Ou une option qui permet à gcc de supporter ces directives?

    Merci infiniment de votre aide!

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Bonjour,

    Apparemment, ce sont les paramètres de la directive « #line ». C'est une facilité qui, à tout moment dans ton programme, te permet de spécifier quel est le nom du fichier en cours et à quelle ligne on se trouve. Ceci affecte les macros __FILE__ et __LINE__ que tu peux toi-même utiliser pour ton propre compte et qui, en temps normal, sont maintenues à jour par le compilateur. C'est utile par exemple pour afficher un message d'erreur indiquant automatiquement le numéro de la ligne à laquelle il se trouve lors de la compilation.

    Mais cette directive est aussi utilisée par le par le préprocesseur lui-même lorsqu'il honore un #include.

    Sauf que dans ton cas, pour une raison inconnue, le mot-clé « line » est passé à la trappe. Il faudrait que tu trouves la cause de ce problème mais il est possible que quelque chose applique une substitution un peu trop brutale sur le fichier de sortie. Un truc qui supprimerait toutes les occurences de « line » dans ton programme mais sans tenir compte du fait que cela peut aussi être un mot-clé.

  3. #3
    Membre éprouvé

    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 87
    Par défaut
    merci pour ta reponse
    mais est ce qu'il n y a pas une option de compilation qui forcera le compilo à ne plus refaire le preprocessing et de compiler là où il s"est arreté?

    mercii encore une fois!

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 484
    Par défaut
    Non puisque le C a forcément besoin du préprocesseur pour compiler ton programme, à moins qu'il soit écrit de façon vraiment particulière.

    Il sort d'où, ton programme source ? Dit comme cela, on dirait que la sortie du préprocesseur a écrasé le fichier original (sans doute à cause d'une erreur dans les options en ligne de commande).

    On peut le voir, ton programme ? (encadré avec les balises [CODE] et [/CODE]).

  5. #5
    Membre éprouvé

    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 87
    Par défaut
    Mercii Obsidian pour ton aide...
    En fait mon problème était que les directives ont était écrites bizzarement!
    elle doivent être comme ceci #ligne "file.h" et non pas ceci #"ligne "file.h" .... donc ce qui bloque ma compilation c'est les cotes qui précédent le numéro de la ligne...

    encore une fois merciii, A+.

+ Répondre à la discussion
Cette discussion est résolue.

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