À retenir
- La machine qui compile (l'hôte) est différente de la machine qui exécute (la cible).
- C'est la solution standard pour programmer des appareils miniatures ou peu puissants.
- Cela nécessite des outils spécifiques appelés compilateurs croisés.
Action de transformer un code informatique en un programme capable de fonctionner sur un type d'appareil ou un système d'exploitation différent de celui utilisé pour le créer. C'est comme si vous utilisiez une usine en France pour fabriquer des prises électriques fonctionnant uniquement sur le réseau électrique américain.
Étymologie
Issu de l'anglais cross-compile, associant « cross » (croiser/traverser) et « compile » (compiler). Le terme illustre le passage d'une architecture informatique à une autre, un concept devenu indispensable avec la multiplication des processeurs différents (Intel, ARM, Apple Silicon).
Exemples d'usage
- Préparer une application pour smartphone Android depuis un ordinateur de bureau Windows.
- Générer le logiciel interne d'un lave-linge intelligent à partir d'un PC de développeur.
- Créer un jeu vidéo pour console (PlayStation, Switch) en travaillant sur une station de travail sous Linux.
Cas d'usage
Ce procédé est utilisé dans le développement d'objets connectés (IoT), d'applications mobiles et de systèmes embarqués. Il intervient dès que l'appareil final est trop peu puissant pour transformer lui-même le code source en programme, ou lorsqu'on souhaite centraliser la production de logiciels pour plusieurs plateformes.
Bonnes pratiques
Il est indispensable d'utiliser une chaîne de compilation (toolchain) parfaitement adaptée à la cible. Une erreur classique consiste à oublier d'inclure les bibliothèques spécifiques au système de destination, ce qui rendra le programme inutilisable une fois transféré.
Synonymes
Antonymes
Conseil
Si vous débutez en programmation pour carte électronique (comme Arduino ou Raspberry Pi Pico), sachez que vous faites de la cross-compilation sans le savoir dès que vous cliquez sur le bouton 'Téléverser'.
Questions fréquentes
Pourquoi ne pas compiler directement sur l'appareil cible ?
Parce que de nombreux appareils (montres connectées, capteurs industriels) n'ont pas la puissance de calcul ou la mémoire nécessaire pour effectuer cette opération complexe.
Est-ce que le résultat est identique à une compilation classique ?
Oui, le logiciel fonctionnera de la même manière, tant que le compilateur croisé a été correctement configuré pour l'architecture cible.