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:
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.
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; }
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
Partager