Cross-Compilieren mit Emdebian

Cross-Compilieren einer C-Source

Das Cross-Compilieren mit der Emdebian Toolchain erfolgt nach dem gleichen Schema wie compilieren für den Host. Um die Anwendungen, die zur Toolchain gehören von den anderen unterscheiden zu können, beginnen alle mit einem architekturspezifischen Präfix, zum Beispiel für ARM mit arm-linux-gnueabi-.
Ein C-Programm für ein ARM-Target wird zum Beispiel folgendermassen übersetzt:

arm-linux-gnueabi-gcc hello.c

Für einen PowerPC Prozessor wäre der Aufruf

powerpc-linux-gnu-gcc hello.c

Kernelmodul Cross-Compilieren

Wenn ein Kernelmodul oder ein Kerneltreiber für ein Target mit einer anderen Architektur, als die des Hosts, übersetzt wird, muss ebenfalls cross-compiliert werden. Um ein Kernelmodul zu übersetzen wird meist ein Makefile erstellt. Dieses kann einfach angepasst werden, damit ebenfalls, wie beim Übersetzen für den Host, make modules ausgeführt werden kann.

modules:
     $(MAKE) ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules

Genaueres dazu ist auch im Skript: Einführung in die Linux Treiberentwicklung (Version Zoom Board) zu finden.