En bref pour les profanes qui se retrouvent ici au pif:
En général quand tu compiles un programme sur ta machine (souvent X86), c'est pour l'exécuter plus tard sur une machine similaire. Tout est compatible, c'est merveilleux (d'après Linus).
Mais quand tu programmes sur ton gros PC avec des néons bleus et que tu veux déployer ton superbe remake de Flappy Bird sur un téléphone portable chinois, il va falloir cross-compiler! Produire un exécutable qui tournera sur un processeur avec une architecture différente (ARM, MIPS, etc.).
--------------------------
Je viens assez récemment de me lancer dans le merveilleux monde de la cross-compilation et je ne sais pas trop par où commencer en terme de ressources, bonnes pratiques etc.
Par exemple j'hésite bêtement sur la meilleure approche concernant plusieurs points:
1) Émuler le hardware cible et tout faire sur cette machine émulée (https://www.qemu.org/).
2) Développer directement sur le hardware cible (un truc genre Raspberry Pi a largement de quoi compiler comme un grand par exemple)
3) Utiliser un truc genre Docker pour le déploiement sur les cibles (encore une fois les trucs genre Raspberry sont assez puissants pour ça, voir aussi les trucs du genre: https://www.balena.io/os/)
4) Utiliser une image préfaite et cross-compiler le programme que je veux (https://developer.arm.com/tools-and-.../gnu-toolchain)
5) Cross-compiler l'image toute entière (offre plus de flexibilité, https://en.wikipedia.org/wiki/BitBake)
Je sais aussi pas trop comment me renseigner pour savoir à quel point une architecture donnée est supportée, y'a pas un "meta" site qui renseigne sur le niveau de support global de telle ou telle architecture?
Pour l'instant je fais ça "à la main" en allant sur le site du constructeur du processeur/de la machine, sur les sites des outils de cross-compilation un par un, etc.
N'hésitez pas à poster si vous avez de l'expérience sur le sur le sujet.
Pour l'instant je fais un peu de tout parmi les points évoqués au-dessus, mais je me demande si je passe pas à côté de trucs plus simples. Genre récemment j'ai découvert https://buildroot.org/ dans la catégorie simple d'utilisation. Et je m'attaque doucement à Yocto (BitBake, OpenEmbedded, etc.) https://www.yoctoproject.org/softwar...iew/downloads/