Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
software:linux:emdebian:cross_compile [2013-07-10 16:26] – angelegt kalberersoftware:linux:emdebian:cross_compile [2016-04-22 12:51] (aktuell) mgehrig2
Zeile 1: Zeile 1:
 ====== Cross-Compilieren mit Emdebian ====== ====== Cross-Compilieren mit Emdebian ======
-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 dem Präfix //arm-linux-gnueabi-//.\\ +=== Cross-Compilieren einer C-Source === 
-Ein C-Programm wird zum Beispiel folgendermassen übersetzt:<code>arm-linux-gnueabi-gcc hello.c</code>+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:<code>arm-linux-gnueabi-gcc hello.c</code> 
 +Für einen PowerPC Prozessor wäre der Aufruf <code>powerpc-linux-gnu-gcc hello.c</code> 
 + 
 +=== 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. <code>modules: 
 +     $(MAKE) ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -C $(KERNELDIR) M=$(PWD) modules</code> 
 +Genaueres dazu ist auch im {{..:treiber_entwicklung:linuxtreiberentwicklung_V1.3.pdf | Skript: Einführung in die Linux Treiberentwicklung}} (Version Zoom Board) zu finden.