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 :

preprocesseur, printer un message lors de la compilation


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut preprocesseur, printer un message lors de la compilation
    Salut, j'aimerais savoir s'il est possibible de d'afficher un message lors de la compilation d'un programme, genre un #print, ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #ifdef __FLAG__
     
    #print ? "prise en charge du code 1"
    [CODE1]
     
    #else
     
    #print ? "prise en charge du code 1"
    [CODE2]
     
    #endif
    Merci d'avance

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 444
    Points
    3 444
    Par défaut
    Salut,

    Tu as #warning qui pourrait répondre à ton besoin je pense.

    A+

  3. #3
    Membre actif Avatar de ronan99999
    Inscrit en
    Juillet 2003
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 279
    Points : 299
    Points
    299
    Par défaut
    sous windows tu peux faire:
    #pragma message("mon message")
    par exemple.

  4. #4
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    Il faut que tu spécifies ton compilateur.

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 580
    Points
    41 580
    Par défaut
    J'ignore si GCC a un truc pour cela.
    Mais Visual C++ (et non pas Windows : Dev-C++ ne l'a pas) possède le #pragma message comme montré plus haut.

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par reptils
    Salut, j'aimerais savoir s'il est possibible de d'afficher un message lors de la compilation d'un programme, genre un #print, ex:
    Pas à ma connaissance. Il y a bien
    mais c'est du viril, du brutal !
    Il y a aussi
    mais c'est une extension de gcc...
    Identificateur réservé.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    mon compilateur est gcc sous windows mingw32 quoi, sous (code:blocks).
    En fait j'ai mis __FLAG__ pour l'exemple (ça aurait pu etre __TOTO__), je ne savais pas que c'était réservé
    alors avec #warning ça marche, mais pas avec #pragma message("message)"

  8. #8
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    Il faudrait réussir à élaborer une conditionnelle du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifdef __GNUC__
           #define Print(x) _Pragma("comment(#x)")
    #else
           #define Print(x) #warning #x
    #endif

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par reptils
    mon compilateur est gcc sous windows mingw32 quoi, sous (code:blocks).
    En fait j'ai mis __FLAG__ pour l'exemple (ça aurait pu etre __TOTO__), je ne savais pas que c'était réservé
    Tu as lu mon lien ? Ce qui est réservé c'est tout identificateur commençant par __

    __TOTO... est aussi réservé que __FLAG...

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par NewbiZ
    Il faudrait réussir à élaborer une conditionnelle du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifdef __GNUC__
           #define Print(x) _Pragma("comment(#x)")
    #else
           #define Print(x) #warning #x
    #endif
    (Ce serait le contraire...)

    A ma connaissance, ce n'est pas possible. Le préprocesseur ne peut pas définir d'instruction de préprocesseur. Ou alors il faut un autre préprocesseur. Ca devient tordu...

    Par contre on peut faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifdef WIN32
    #pragma message("Ca craint")
    #elif defined(__GNUC__)
    #warning "Ca craint"
    #else
    #error "Ca craint"
    #endif
    au coup par coup, mais c'est lourdingue...

  11. #11
    Membre confirmé
    Avatar de NewbiZ
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2002
    Messages : 184
    Points : 563
    Points
    563
    Par défaut
    MinGW = Win32 pourtant c'est le portage de gcc non ? il définira __GNUC__ je pense.
    Sinon c'est peut être un peu sadique de mettre un #error si on utilise ni le compilateur microsoft ni gcc non ? les pauvres autres compilos, un warning suffirait non ?

  12. #12
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par NewbiZ
    MinGW = Win32 pourtant c'est le portage de gcc non ? il définira __GNUC__ je pense.
    C'est possible, oui... Il y a peut être un __MSC ou un truc comme ça.
    Sinon c'est peut être un peu sadique de mettre un #error si on utilise ni le compilateur microsoft ni gcc non ? les pauvres autres compilos, un warning suffirait non ?
    C'est pour obliger le développeur à rajouter une branche (si il peut...)

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 580
    Points
    41 580
    Par défaut
    _MSC_VER est défini dans les compilateurs microsoft, c'est généralement là-dessus que je me base.
    Mais, est-il possible de faire un truc de ce genre:
    Code UnHeader.h : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #undef MESSAGE
    #define MESSAGE "Ca craint"
    #include "Affiche.h"
    Code Affiche.h : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifdef _MSC_VER
    #pragma message(MESSAGE)
    #elif defined(__GNUC__)
    #warning MESSAGE
    #else
    #error MESSAGE
    #endif
    Si ça marche, ce pourrait être TRES intéressant...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    un #warning me suffira

  15. #15
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par reptils
    un #warning me suffira
    En gardant en tête que ce n'est pas portable...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Points : 361
    Points
    361
    Par défaut
    vivi, en fait c'était pour tester une valeure par rapport à la librairie wxwidgets sous windows

  17. #17
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par reptils
    vivi, en fait c'était pour tester une valeure par rapport à la librairie wxwidgets sous windows
    Moi, je trouve que #error est bien pour ça... Au moins, on sait qu'on a du code à corriger...

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/04/2015, 11h01
  2. messages lors de la compil noyau
    Par kamouminator dans le forum Linux
    Réponses: 4
    Dernier message: 01/05/2009, 11h23
  3. Message d'erreur lors de la compilation
    Par CleeM dans le forum Delphi
    Réponses: 1
    Dernier message: 09/07/2007, 12h18
  4. Réponses: 7
    Dernier message: 16/08/2006, 14h39
  5. Réponses: 27
    Dernier message: 23/03/2006, 07h33

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