Suivant: Constructions natives, Monter: Architectures externes [Table des matières][Index]
Les commandes qui prennent en charge la compilation croisée proposent les options --list-target et --target.
L’option --list-targets liste toutes les cibles prises en charge qui peuvent être passées en argument à --target.
$ guix build --list-targets Les cibles disponibles sont : - aarch64-linux-gnu - arm-linux-gnueabihf - avr - i586-pc-gnu - i686-linux-gnu - i686-w64-mingw32 - mips64el-linux-gnu - or1k-elf - powerpc-linux-gnu - powerpc64le-linux-gnu - riscv64-linux-gnu - x86_64-linux-gnu - x86_64-linux-gnux32 - x86_64-w64-mingw32 - xtensa-ath9k-elf
Les cibles sont spécifiées comme des triplets GNU (voir GNU configuration triplets dans Autoconf).
Ces triplets sont passés à GCC et aux autres compilateurs sous-jacent éventuellement impliqués dans la construction d’un paquet, d’une image système et de toute autre sortie de GNU Guix.
$ guix build --target=aarch64-linux-gnu hello /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12 $ file /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello /gnu/store/9926by9qrxa91ijkhw9ndgwp4bn24g9h-hello-2.12/bin/hello: ELF 64-bit LSB executable, ARM aarch64 …
Le principal avantage de la compilation croisée est qu’il n’y a pas de ralentissement par rapport à l’émulation avec QEMU. Il y a cependant de plus grands risque que certains paquets échouent à compiler de manière croisée car seuls quelques utilisateurs et utilisatrices utilisent ce mécanisme de manière intensive.