Home

crosskompilering

Crosskompilering är processen att skapa körbara program för en målarkitektur som skiljer sig från den miljö där källkoden kompileras. Den vanliga användningen är utveckling av inbyggda system eller program för olika operativsystem där målarkitekturen inte överensstämmer med utvecklingsplattformen. Exempel är att kompilera program för ARM-baserade enheter från en dator med x86- eller x64-processor.

En crosskompilering bygger på en cross-compiler toolchain som innehåller en kompilator, assembler, länkare samt målbibliotek och

Användningen stöds av byggsystem som Buildroot och OpenEmbedded som kan producera kompletta images för målplattformar. Det

Crosskompilering är central i modern mjukvaruutveckling för olika hårdvaruplattformar och möjliggör kontinuerlig utveckling utan direkt tillgång

---

headers.
Verktygskedjan
konfigureras
med
ett
måltrippel
som
anger
arkitektur,
operativsystem
och
ABI,
till
exempel
arm-linux-gnueabihf.
Ett
sysroot
används
för
att
tillhandahålla
målens
bibliotek
och
rubriker.
Byggprocessen
kräver
ofta
specifika
flaggor
för
arkitektur,
och
länken
sker
mot
målens
bibliotek
antingen
statiskt
eller
dynamiskt.
I
vissa
fall
körs
programmet
i
en
emulator
eller
direkt
på
målmaskinen.
finns
även
verktyg
som
crosstool-ng
för
att
bygga
anpassade
toolchains.
Vanliga
utmaningar
inkluderar
saknade
beroenden
i
målmiljön,
skillnader
i
endianness
och
ABI
samt
hantering
av
sysroot
och
runtime-konfigurationer.
Debugging
av
crosskompilerade
program
sker
ofta
via
fjärrdebugging
eller
gdbserver
och
med
hjälp
av
emulatorsystem
som
QEMU.
till
målmaskinvara
vid
varje
byggning.