4

Je voudrais utiliser Visual Studio 2010 pour créer un C++ application qui finira par fonctionner sur Linuxest C++ code source portable linux quand il compile avec succès dans Visual Studio 2010

Y a-t-il des problèmes de compatibilité/version que je devrais être au courant de? Quel compilateur dois-je utiliser sur Windows et sur Linux?

+0

Il n'y a pas d'équivalent linux pour #include alors assurez-vous d'inclure tous les en-têtes standard pertinents lors de la construction pour linux. En plus de ça, C++ devrait être ok. – Muggen

Répondre

6

Le compilateur est sans importance tant que vous utilisez standard C++ et aucune extension spécifique à la plate-forme. Si vous avez besoin d'installations spécifiques au système (réseau, système de fichiers ...), essayez d'utiliser une couche d'abstraction telle que boost.

3

Utiliser la norme C++. Essayez de ne pas utiliser les fonctionnalités dépendantes du compilateur comme __int64 ou les bibliothèques externes spécifiques à la plate-forme et cela devrait aller.

+0

+1. Au lieu de __int64, il pourrait #include pour ce genre de choses. – Muggen

+0

@Muggen: IIRC stdint.h n'est pas supporté par VC++, même s'il y a plusieurs remplacements disponibles. –

+0

@Matteo: il est dans le dernier VC++, ou alors on me dit. Une partie du lecteur vers C++ 0x. –

4

Il y a beaucoup de problèmes dont vous devez être conscient, malheureusement. Le plus important, comme d'autres personnes l'ont fait remarquer, est que vous n'utilisez que du C++ standard et des bibliothèques portables sur toutes les plates-formes que vous ciblez. Mais il y a beaucoup d'autres choses à vous mordre, par exemple. différentes terminaisons de ligne (Windows utilise \ r \ n, les variantes Unix utilisent généralement \ n), différentes tailles de types de données, etc. Plus généralement, lorsque vous essayez de garder les choses portables, vous devez également être attentif à des choses comme l'endianness, byte -ordination, le fonctionnement des différents systèmes de fichiers, etc.

Essentiellement, le plus important est de se familiariser avec tous les systèmes que vous ciblez. Ne pas l'écrire sur un système, puis s'attendre à être capable de le compiler sans douleur sur un autre. Au lieu de cela, compilez-le sur tous les systèmes pertinents dès le premier jour et assurez-vous qu'il continue de fonctionner sur tous les systèmes, tout le temps. Je recommande de regarder dans un système de construction multi-plateforme comme CMake (http://www.cmake.org) - il vous fera économiser un monde de douleur dans mon expérience. Vous ne voulez pas avoir à garder des fichiers makefiles pour plusieurs plates-formes en même temps, si vous pouvez l'aider.

Questions connexes