Certains programmes, vous pourriez juste être en mesure de recompiler pour une nouvelle plate-forme, pas de problèmes. Si c'est un programme très simple, n'utilisant rien de spécifique à ce système d'exploitation, vous pourriez être en mesure de s'en tirer avec ça. Fondamentalement, en prenant la source, en le déplaçant vers un autre système d'exploitation, et en utilisant un compilateur là-bas. Cependant, même s'il existe un code spécifique, vous pouvez utiliser des indicateurs de compilation ou des constantes dans votre code pour que le compilateur fonctionne différemment. Je suis rouillé sur ma syntaxe C++, mais je pense que cela devrait montrer ce que je veux dire:
#if OS == WINDOWS
root = "C:\\";
#elseif OS == LINUX
root = "/";
#endif
Une autre méthode consiste à exécuter le programme à l'intérieur d'une machine virtuelle, comme Java. Cette machine virtuelle fonctionnerait sur différentes plates-formes et votre exécutable devrait être capable de fonctionner de manière transparente sur tout ce qui l'utilise. Vous devrez peut-être effectuer une recompilation avec quelques petites modifications, s'il y avait du code spécifique au système d'exploitation, mais si vous avez l'intention de le faire depuis le port, vous ne vous inquiéterez probablement pas de cela.
Une troisième façon est une combinaison des deux, et est, si je me souviens bien, ce que fait Firefox. La plupart du code reste exactement le même, mais il utilise une base pour fonctionner, qui est compilée spécifiquement pour ce système d'exploitation, qui définit des choses différentes, crée des types spécifiques de variables, tels que nsInt
(depuis longtemps, j'ai regardé FF code, donc je suis probablement faux, mais je sais que ns
est leur convention) que vous utiliseriez à la place de int
, car il serait spécifiquement conçu pour être le même sur toutes les plates-formes. Lorsque vous compilez, la plate-forme correcte est choisie pour la base, puis le programme entier est compilé en utilisant cela.