Login
Newsletter
Do, 6. November 2008, 12:38

Cross-Compilieren mit Crosstool

Zahlreiche eingebettete Systeme laufen mit Linux, aber nicht mit x86-Prozessoren. Auf den Systemen selbst kann man jedoch nicht compilieren; selbst wenn man einen Compiler installieren könnte, wäre der Vorgang sehr langsam oder würde zuviel Platz benötigen.

Stattdessen installiert man einen Cross-Compiler auf seinem Desktop-Rechner. Doch das ist, wenn man nicht auf ein Distributionspaket zurückgreifen kann, schwierig. Neben Binutils und GCC benötigt man zumindest noch eine Version von glibc für das Zielsystem. Nicht jede Kombination der verschiedenen Versionen der Tools lässt sich erfolgreich compilieren. So kann der Versuch, einen Cross-Compiler aufzusetzen, eine frustrierende Erfahrung sein.

Abhilfe schafft Dan Kegels »Crosstool«. Es ist nicht die einzige Alternative, aber eine, die für viele Crosscompiler-Kombinationen funktioniert. Von Dan Kegels Seite kann man sich ein Tar-Archiv der aktuellen Version 0.4.3 herunterladen. Dieses entpackt man und wechselt in das neue Verzeichnis:

wget http://kegel.com/crosstool/crosstool-0.43.tar.gz
tar xzvf crosstool-0.43.tar.gz
cd crosstool-0.43

In diesem Verzeichnis gibt es beispielhafte Skriptdateien für alle Zielsysteme. Man kopiert nun die passende Datei, um einige Variablen anzupassen. Für Software, die auf Smartphones wie dem Motorola A1200 laufen soll, dürfte »demo-arm-iwmmxt.sh« beispielsweise der richtige Ausgangspunkt sein. In der Kopie dieser Datei passt man die Variablen TARBALLS_DIR und RESULT_TOP seinen Wünschen an. Beide Verzeichnisse müssen existieren, und man benötigt Schreibrechte darin. Dann kann man das Skript ausführen, und wenn alles gut geht, lädt das Skript vollautomatisch alle benötigten Quellen herunter und compiliert sie. Das Ergebnis ist ein Cross-Compiler unter $RESULT_TOP, für dessen Aufruf man am besten das Unterverzeichnis »bin« in die PATH-Variable aufnimmt.

Das Crosstool HOWTO gibt zahlreiche weitere Hinweise, z.B. zur Erzeugung von RPM-Dateien, der Verwendung von distcc zum schnelleren Generieren und weiteren Anpassungen.

Kommentare (Insgesamt: 19 || Alle anzeigen )
Re: OpenEmbedded, OpenWRT (René Rebe, Mi, 12. November 2008)
OpenEmbedded, OpenWRT (thebohemian, Fr, 7. November 2008)
Re: buildroot mit glibc (Simon, Fr, 7. November 2008)
Re: Linux -> Windows (tge, Fr, 7. November 2008)
Re: Linux -> Windows (chithanh, Fr, 7. November 2008)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten