Bonjour,
J'ai un peu du mal à trouver la bonne question. En même temps, Melem m'a dit que le sujet est très vaste. Je l'admet, mais tant que je n'aurais pas écrit l'article en question (ou quelqu'un d'autre ) je propose un récapitulatif des quelques points qui me viennent en tête.
Question : Comment éviter qu'une application soit non portable ?
Réponse :
En fait, il est simple de faire en sorte qu'une application soit portable. Pour cela, il suffit de respecter quelques règles simples :
- Éviter d'inclure les fichiers conio.h ou ceux liés à la WinAPI (tel que windows.h) ;
- Éviter les include contenant le séparateur de chemin de fichier '\' (qui est autocomplété par VS2010) ;
- Privilégiez les bibliothèques multiplateformes ;
- Affichez les avertissements maximums des compilateurs (permet de se rapprocher de la norme du langage et donc d'être compatible avec plus de compilateurs)
- Écrivez du code respectant la norme du langage et non du code qui compile par chance ;
- Évitez les #pragma (même s'ils sont maintenant reconnus / ignorés par la plupart des compilateurs).
---
Donc, voilà un premier essai. Je ne suis peut être pas le meilleur pour ce genre de choses.
Petit rappel du pourquoi je trouve cette Q/R importante ->
J'ai déjà vu du code sur le forum, ayant des #include <windows.h> alors que cette entête n'était pas nécessaire. Un peu pareil avec conio.h et sa superbe fonction getchar() :tronçonneuse:. Étant sous GNU/Linux (non, ce n'est pas pour troller), la conversion de leur code me prends du temps (pour voir que cela bogue à toute les lignes ). Alors qu'il suffit de respecter quelques règles simples pour avoir un programme portable.
(Bon, ils me font aussi rager les gens qui disent que produire un programme portable est compliqué. Cela l'est que lorsque l'on commence par programmer sous Windows (bizarrement). La transition Linux -> Windows est largement plus simple à faire).
Donc, après mon coup de rage ; le but final de cette FAQ (et peut être d'un article ?) est de faire en sorte que plus de programmeur fasse que leurs programmes compilent facilement sur tout les systèmes, donc, faisant que les programmes tournant sous GNU/Linux ou MAC OS X soit plus importants.
Partager