3 votes

Un programme Boost Windows est-il portable sur d'autres systèmes Windows ?

J'envisage deux options pour un programme. Soit C++ avec Boost Asynchronous IO, soit Java avec le NIO asynchrone. Je sais que Java est portable tant que le système possède le run time java. Je préférerais utiliser C++ avec Boost mais je ne suis pas sûr que le programme que j'écris puisse être porté sur une autre machine Windows et continuer à fonctionner. Que dois-je faire pour m'assurer que le programme dispose de toutes les dépendances nécessaires au moment de l'exécution ? Je prévois d'utiliser uniquement le fichier Windows.h, le standard C++ 2003 et les bibliothèques Boost.

6voto

ybungalobill Points 31467

Boost et CRT peuvent être liés statiquement à votre exécutable, il n'y aura donc aucune dépendance externe.

3voto

Steve Townsend Points 36948

Tant que vous utilisez Boost, la bibliothèque standard C++ (et la CRT, si vous y tenez), votre code sera porté assez facilement.

Assurez-vous d'éviter toute extension CRT de Microsoft, telle que l'extension str*_s fonctions (par exemple aquí ) - MSDN ne les signale pas très bien comme étant non standard, malheureusement.

Évitez également d'utiliser les fonctionnalités C++0x dans Visual C++ v10 pour maximiser la portabilité à court terme - ou vérifiez que les autres compilateurs que vous visez possèdent les fonctionnalités que vous comptez utiliser.

Faites attention : Si tu utilises un tas de trucs en dehors de windows.h vous briserez la portabilité et augmenterez le travail que vous devez faire. Évitez cela autant que possible si vous prévoyez un portage ultérieur, et si vous avez besoin de quelque chose à partir de là, essayez d'isoler l'utilisation dans des fichiers d'en-tête et de code distincts 'je dois changer cela quand je porterai' de votre propre code, de sorte que vous sachiez que vous ne devez regarder que ce sous-ensemble de votre code lors du portage vers un autre OS.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X