• # Cross-compilation

    Posté par (site web personnel, Mastodon) . En réponse au journal Retour aux sources. Évalué à 10. Dernière modification le 26 septembre 2014 à 11:13.

    Salut,

    Pour la cross-compilation, j'ai découvert depuis mon projet crossroad que c'est vraiment pas un problème du moment que tu fais du code ok et des Makefiles normaux (que ce soit autotools ou cmake), puis tu testes une cross-compilation régulièrement (avec crossroad, qui prend en charge justement autotools et cmake!) pour t'assurer que ça cross-compiles bien et corriger les éventuels accrocs.

    Il m'est déjà arrivé de corriger des projets en un mini-patch qui n'avaient jamais même pensé que leur projet marcherait avec win32. C'est le cas par exemple de la bibliothèque GExiv2 (quand on s'est mis à utiliser Exiv2 et son wrapper GExiv2 pour GIMP, il fallait bien sûr que cela fonctionne sous Windows aussi). Ils utilisaient à l'époque un Makefile fait à la main, à l'ancienne. Je l'ai transposé en un Makefile.am + configure.ac tout à fait classiques. Je cross-compile. Pof! Ça marche! En un temps record, GExiv2 fut porté sous Windows (je pense même pas avoir eu à toucher une seule ligne de code). Les développeurs de cette bibliothèque m'ont dit qu'ils n'avaient jamais développé cette lib sur Windows, n'avaient jamais tenté de la compiler pour cette plateforme et ne s'étaient même pas dit que ce serait possible (puisqu'ils ne s'en préoccupaient pas depuis le début). C'est la magie des chaînes de compilation standards sous Linux (en tous cas, pour les 2 les plus répandus, autotools et cmake. Je n'ai jamais eu l'occasion d'en essayer d'autre dans un contexte de crossbuild).
    Franchement, la cross-compilation, c'est pas un gros problème. :-)

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]