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 :

redefinition à la compilation


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut redefinition à la compilation
    Bonjour

    Je travaille actuellement sur un projet que je dois migrer de Solaris vers Linux (RedHat).
    Certains problemes de compilation (reccurents) viennent m'embeter (et je reste poli). La redefinition de structures (par ex) dans deux fichiers systemes (donc, pas ecrits par moi et non modifiables).

    Ma question est : comment faire pour contourner cela ?

    Un exemple ? Facile

    Mon projet a besoin d'une librairie strtty sur laquelle je pointe (via -I/strtty/include/) dans mon makefile et je pointe aussi sur des fichiers purement systeme (-I/usr/include) pour les besoins du projet.

    A la compilation, je me retrouve avec une redefinition d'une structure (winsize) que je retrouve a la fois dans strtty/include/termio.h et à la fois dans le fichier systeme /usr/include/iocti-types.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    struct winsize {  
        unsigned short int ws_row;
        unsigned short int ws_col;
        unsigned short int ws_xpixel;
        unsigned short int ws_ypixel;
    }
    Vous me direz que je n'ai qu'a pointer que sur le fichier systeme (-I/usr/include) uniquement. Oui, mais non. Car dans le fichier termio.h sont declarés d'autres fonctions ou parametres utiles au projet.

    J'ai vu que l'on pouvait utiliser des #if 0 ...#elseif ...#endif

    Est-ce que cela me permettrait de contourner mon probleme si je l'inclus dans le source qui appelle la structure winsize ?

    Sinon, quelle autre solution ais-je svp ???

    Merci par avance pour vos lumieres
    pepito31

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Cette librairie strtty, c'est toi quoi la porte, ou bien utilises-tu simplement une version déjà portée ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut strtty
    Cette librairie vient d'un package open source linux (openss7) deja compilé sur le serveur et qui est sensé remplacer les librairies de communication utilisées sous ASolaris (xti, tli, x25 etc ...).
    Donc, oui, j'uitilise une version deja portée ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 47
    Points
    47
    Par défaut
    J'ai trouvé une solution (je ne sais pas ce qu'elle vaut, mais elle a le mérite de passer le probleme)

    Je pointe donc sur l'une des deux librairies (strtty pour ma part) dans les Include de mon makefile et j'ajoute dans mon source les declarations (ou definitions) qui ne sont pas dans ce fichier (strtty/include/termio.h) mais utile a mon projet.

    Comme je le disais, la compilation passe... pour le lancement du soft, peut-etre y aura t il des soucis - je verrai a ce moment là

    Merci en tout cas
    pepito31

Discussions similaires

  1. Options de compilation sous gcc (redefinition de typedef)
    Par cauriera dans le forum Débuter
    Réponses: 2
    Dernier message: 27/01/2010, 13h57
  2. [Installation] Borland Compiler 5.5 sous XP
    Par Ligey dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 28/09/2002, 22h45
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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