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 :

Inclure des headers selon le compilateur


Sujet :

C

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut Inclure des headers selon le compilateur
    Bonjour,

    Je developpe une application sous Borland C 3.1. Cette application doit être intégrée par la suite comme source dans un projet tournant sous un autre logiciel de développement (CodeComposer).
    Sous borland c 3.1 j'inclu certains header. Sous CodeComposer je voudrais ne pas inclure ces headers. Je ne veux pas toucher à mon code quand je passe la source d'un compilateur à l'autre.Ainsi, je souhaiterai faire des includes conditionnels.

    Comment puis-je m'y prendre?

    Merci.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifdef JE_COMPILE_SOUS_BORLAND
    #include "borland.h"
    #endif
    Sachant que JE_COMPILE_SOUS_BORLAND peut être soit une macro prédéfinie de Borland, soit une macro définie en ligne de commande...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut
    Merci de ta réponse.

    J'ai donc placé dans ma source:
    #ifdef BORLAND_C
    #header_a_inclure
    #endif

    J'ai placé un #define BORLAND_C 1 dans mon .c contenant le main sous Borland C 3.1. Cependant, à la compilation #header_a_inclure n'est pas inclu.

    Ce n'est pas une bonne méthode?

  4. #4
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Citation Envoyé par sigfrit
    J'ai placé un #define BORLAND_C 1 dans mon .c
    Ce n'est pas la peine d'attribuer une valeur à ta macro. #ifdef regarde uniquement si celle-ci est définie, peu importe la valeur.suffit

  5. #5
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et d'autre par tout l'intérêt des directives conditionnelles est DE NE PAS AVOIR A CHANGER LE CODE SOURCE


    Donc NE JAMAIS METTRE #define directive dans le code source.


    Le define se fait directement sur la ligne de compilation :

    Dans vos outils (ou make), avec gcc par exemple, il suffit de mettre le flag -Ddirective

    Dans ton cas :

    en flag dans la ligne (les options) de compil est CE QU'IL FAUT METTRE.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Rectification, ne jamais mettre de #define directive DÉPENDANT DE LA PLATE-FORME dans le code source.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ça va de soi, mais ça va mieux en le disant ...

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par sigfrit
    Je developpe une application sous Borland C 3.1. Cette application doit être intégrée par la suite comme source dans un projet tournant sous un autre logiciel de développement (CodeComposer).
    Sous borland c 3.1 j'inclu certains header. Sous CodeComposer je voudrais ne pas inclure ces headers. Je ne veux pas toucher à mon code quand je passe la source d'un compilateur à l'autre.Ainsi, je souhaiterai faire des includes conditionnels.

    Comment puis-je m'y prendre?
    Il existe une macro prédéfinie sous Borland C : __BORLANDC__
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #ifdef __BORLANDC__
    /* BC */
    #else
    /* CCS */
    #endif
    Mais tu pourrais aussi essayer d'écrire du code portable, c'est mieux...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Par défaut
    Merci de ces conseils
    Mais dans ce cas précis, j'ai une plate forme de test avec des headers spécifiques, et la plate forme définitive avec d'autres headers

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

Discussions similaires

  1. Meilleure façon d'inclure des headers
    Par benjamin0 dans le forum C++
    Réponses: 9
    Dernier message: 17/06/2013, 19h31
  2. [XSLT]Inclure des regles xsl selon des cas
    Par ujoodha dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 09/06/2006, 20h47
  3. [IDE] Gestion automatique des headers d'unités
    Par Clorish dans le forum Outils
    Réponses: 1
    Dernier message: 27/06/2005, 18h52
  4. Gestion des headers dans un Makefile
    Par Weren dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 09/11/2004, 10h44
  5. [jsp] Inclure des pages ASP et ASP.NET
    Par olive.m dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 06/05/2004, 12h41

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