Outils pour utilisateurs

Outils du site


dev:raspberry:cross-toolchain:start

Ceci est une ancienne révision du document !


La compilation croisée

Principe

On utilise des outils (on parle de chaine de compilation croisée ou cross toolchain) pour générer des fichiers exécutables par une autre machine (la cible) basée sur une architecture différente.
Application courante: J'utilise mon PC pour générer des programmes qui s'éxecuteront sur une machine ayant de plus faibles ressources: ma raspeberry Pi.

Cela peut sembler plus compliqué, pourquoi ne pas les générer les programmes directement sur la cible? Souvent ces cibles sont des plateformes légères, dédiée à de l'embarqué par exemple. Leurs ressources sont limitées: espace de stockage, cadence du processeur, quantité de mémoire. La génération des binaires peut être bien plus longue.

L'outil cross toolchain

Le terme cross toolchain (chaine de compilation croisée) désigne un esemble d'outils dédiés à la génération de fichiers qui seront exécutables sur la plateforme cible:

  • Des compilateurs tels que gcc, g++ ou gnat.
  • Des outils de manipulation de fichiers binaires ld, as ou ar.
  • Des bibliothèques pour la plateforme cible libC.
  • débogeurs gdb et gdbserver

Installer une cross toolchain

cross toolchain précompilée

La plupart des distributions proposent des cross toolchain précompilée. Elles ont pour avantage d'être simple à mettre en place. En contrepartie elle sont génériques.

compilation de la cross toolchain

La compilation d'une chaine peut s'averrer fastidieux. Regrouper les packages, tenter la compilation, résoudres incompatibilités, appliquer les patchs recompiler… Certains outils permettent de sélectionner les bonnes versions de packages et de compiler la chaine:

  • Crosstool
  • Crosstool-NG
  • Scratchbox
  • OpenEmbedded
dev/raspberry/cross-toolchain/start.1356004484.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)