Introduction à la compilation croisée
Pourquoi compiler ?
La compilation est un processus inévitable lorsque les programmes que l'on écrit deviennent distribuables et peuvent donc être amené à s'exécuter sur des machines différentes. Elle permet de transformer un programme écrit en langage humain en un programme exécutable et compréhensible par une machine. Prenons l'exemple d'un programme en C, la syntaxe humaine est la suivante :
#include <stdio.h> #include <stdlib.h> int main(){ printf(« Hello ») ; return 0 ; }
Après utilisation d'un compilateur tel que GCC, nous obtenons un fichier exécutable, qui est une suite d'instructions hexadécimale compréhensible par le processeur. Cependant, le programme compilé n'est pas toujours exportable vers une autre machine, car malgré le fait que l'architecture d'un ordinateur (au sens large du terme) soit généralement la même, il existe des différences, principalement liées au processeur. Ces différences sont décrites ici
La compilation croisée
La compilation croisée se définit par l'utilisation d'un compilateur spécifique pour créer un programme exécutable par une autre machine que la notre. Ce compilateur doit évidemment tenir compte des spécificités du processeur cible. Un des cas d'utilisations important de la compilation croisée est dans le domaine des calculateurs embarqués. Plus de détails ici concernant les systèmes embarqués. Divers outils permettent de créer son compilateur. Ils sont décrit ici