IT-lexicon › Programmeren › Cross-compiler

Cross-compiler

Programmeren Svenska → Bijgewerkt: 2026-11-02

Een compiler die op de ene architectuur draait maar code voor een andere genereert.

Een microcontroller met 64 KB flash kan GCC niet draaien, dus wordt de code op een pc gebouwd en naar het apparaat geflasht. De toolchain wordt aangeduid met een target triplet: arm-none-eabi betekent ARM, geen besturingssysteem, embedded ABI. Daar hoort niet alleen een compiler bij, maar ook een assembler, een linker, een C-bibliotheek voor het doelplatform en een linkerscript dat weet waar het geheugen zit.

De klassieke kopzorg is het verwisselen van host en doel: buildsystemen die tijdens de configuratie testprogramma's uitvoeren, headers uit /usr/include van de host die binnensluipen, een bibliotheek die voor x86 is gelinkt. GCC heeft per doelplatform een apart gebouwde compiler nodig, terwijl Clang/LLVM het doel met een vlag kiest. Dat is mede de reden dat Zig en Rust bijna zonder ceremonie cross-compileren. Het resultaat wordt vaak eerst in QEMU geprobeerd voordat iemand een echt bord erbij pakt.

← Terug naar het lexicon