Nächste: Native Erstellungen, Nach oben: Fremde Architekturen [Inhalt][Index]
Für die Befehle, die Cross-Kompilierung unterstützen, werden die Befehlszeilenoptionen --list-targets und --target angeboten.
Die Befehlszeilenoption --list-targets listet alle unterstützten Zielsysteme auf, die Sie als Argument für --target angeben können.
$ guix build --list-targets Die verfügbaren Zielsysteme sind: - 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
Zielsysteme werden als GNU-Tripel angegeben (siehe GNU-Tripel für configure in Autoconf).
Diese Tripel werden an GCC und die anderen benutzten Compiler übergeben, die an der Erstellung eines Pakets, Systemabbilds oder sonstigen GNU-Guix-Ausgabe beteiligt sein können.
$ 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 …
Der große Vorteil beim Cross-Kompilieren liegt darin, dass keine Leistungseinbußen beim Kompilieren zu befürchten sind, im Gegensatz zur Emulation mit QEMU. Jedoch besteht ein höheres Risiko, dass manche Pakete nicht erfolgreich cross-kompiliert werden können, weil sich weniger Leute mit diesem Mechanismus lange befassen.