Question de "multiplateformage"

Question de "multiplateformage" - C++ - Programmation

Marsh Posté le 06-12-2002 à 09:31:12    

bon bref en clair :
 
Je suis entrain de me monter un petit ensemble de bibliothéque
de classes qui repondent à certains de mes besoins. BAsiquement ca ressmelbe a de la STL mais bon un peu specialiésée dans l'utilisation que je vais en faire.
 
LA question est, comment faire PROPREMENT pour minimiser le temps et les emmerdements a rendre cette bibliotheque un tant soit peu multiplateforme (WINxx-Linux et probablemant MacOS??) ?
Sachant que :
 
1. Tout ce que j'ai pu faire en C++ portable a etait fait.
2. Que je veux profiter de ttes les feintes et astuces pouvant me simplifier la vie sur tel ou tel plateforme. Ex : le sfichiers mappé en memoire utiliseront CreateViewOfFIle sous Winwin et mmap sous nunux.
3. Que j'ai pas que ca a fiare et que je veux quand meme avoir qqchose de propre.
 
Tout conseil est le bienvenue tant au niveau des styles qu'au niveau des astuces. Et pas de reponse a la 'ben #define mon vieux' merci :)
 
A plus  
 
Joel ki revient de loin [:joel f]


Message édité par Joel F le 06-12-2002 à 09:32:04
Reply

Marsh Posté le 06-12-2002 à 09:31:12   

Reply

Marsh Posté le 06-12-2002 à 12:01:47    

Par plateforme on entend normalement un couple OS/compilo
soit par exemple
WINNT/VisualC++
WINNT/BorlandC++
Linux386/Gcc
Linux386/Kylix
Linux386/icc
etc.
 
Donc le terme multi-plateforme est presque evident pour une bibliotheque.
 
Les methodes ?
1- N'utiliser que le standard, mais c'est bien sur limité...
2- Utiliser des biblotheques portables qui resoudront les pb de portabilité pour vous...
3- Mettre des #ifdef ...
4- utiliser des encapsulation pour minimiser les #ifdef : exemple pour tes fichiers mappes en memoire : prevoire une nouvelle API afin de localiser les appels au libs differentes (WIN32/POSIX)...
5- remplacer des #ifdef par des fichiers differents, c'est un peu dangereux, mais tu peux avoir des fichiers differents suivant l'architecture... au makefile par exemple de faire la difference...
 
Un autre probleme est le build... une bonne methode simple :
le makefile (sous cygwin pour windows)... mais c'est loin d'etre evident (attention a la gestion des extentions dans les makefile .o/.obj .a/.lib .so/.sl/.dll et aux diff majuscules/minuscules)....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed