Korskompilator
En kompilator som körs på en arkitektur men producerar kod för en annan.
En mikrokontroller med 64 KB flash kan inte köra GCC, så koden byggs på en PC och flashas över. Verktygskedjan identifieras med en målbeskrivning, en så kallad target triplet: arm-none-eabi betyder ARM, inget operativsystem, inbyggt ABI. Till den hör inte bara kompilatorn utan också assembler, länkare, ett C-bibliotek byggt för målet och ett länkskript som vet var minnet ligger.
Det klassiska strulet är att blanda ihop värd och mål: byggsystem som kör testprogram under konfigureringen, headers från värdens /usr/include som smiter in, ett bibliotek som länkats för x86. GCC kräver en separat byggd kompilator per mål, medan Clang/LLVM väljer mål med en flagga, vilket är en del av förklaringen till varför Zig och Rust kan korskompilera nästan utan ceremonier. Resultatet testas ofta först i QEMU innan någon letar fram ett kort.