Diese Frage habe ich bereits zu Stack Overflow gestellt, aber ich würde gerne wissen, ob es jemandem gelungen ist, eine GCC 4.7-Toolchain für ARM-Cross-Compilation (für einen x86 / x86-64-Linux-Host) zu erstellen. Es gibt viele Anweisungen zum Erstellen von GCC aus dem Quellcode und viele verfügbare Cross-Compiler für GCC-Versionen vor 4.7, nur nicht die neueste.
Das Kompilieren auf Rasp Pi selbst funktioniert einwandfrei, ist jedoch für praktische Zwecke etwas zu langsam.
Ich bin gespannt auf das Kompilieren und möchte die neuesten und besten Tools verwenden.
software-development
cross-compilation
gcc
tlhIngan
quelle
quelle
Antworten:
Ich habe diese Anleitung gefunden. Wie man einen Cross-Compiler für den Raspberry Pi erstellt . Es ist eine großartige Einführung in die Verwendung eines
crosstool-ng
Tools, das die Konfiguration eines compilerübergreifenden Builds vereinfacht. VIEL (es hat eine schöne, auf Flüchen basierende Oberfläche) und es unterstützt GCC 4.7.Ich bin diesen Schritten gefolgt und habe einen 4.7-Cross-Compiler erfolgreich erstellt.
crosstool-ng
von hier (ich habe Version 1.15.2 verwendet)../configure
/make
/install
cd
können.ct-ng menuconfig
. Sie erhalten eine Reihe von Menüs, mit denen Sie Ihren Build konfigurieren können.Wählen Sie ein geeignetes Präfixverzeichnis . Dies ist das Verzeichnis, in das Ihr Compiler und Ihre Bibliotheken installiert werden (grundsätzlich ist alles in Ordnung, stellen Sie nur sicher, dass das Verzeichnis leer ist).
Gehen Sie auf die Zieloptionen Menü.
Möglicherweise möchten Sie auch den Gleitkomma-Parameter auf softfp setzen (siehe dies für weitere Informationen), aber hardfp ist besser für Raspbian geeignet.
Gehen Sie zum C-Library- Menü und wählen Sie eines aus. Der Standard ist eglibc, aber dieser hat für mich nicht gut funktioniert, also habe ich glibc (die neueste Version) verwendet.
crosstool-ng
ct-ng build
in demselben Verzeichnis. Warten Sie eine Weile (in meinem Fall ca. 45 Minuten) und Ihr Cross-Compiler sollte bereit sein.Scheint großartig zu funktionieren!
quelle
Tatsächlich müssen die neuesten und besten Tools nicht selbst erstellt werden. Im GitHub-Repository des Raspberry Pi Tools finden Sie die Toolchains
X86_64
undx686
für die kompilierungsübergreifende Software.Ich empfehle, die
x86-linux64-cross-arm-linux-hardfp
Toolchain zu verwenden, da diese für Hard Floating Point kompiliert wird, was zu einem viel schnelleren System führt.Hinweis: Wenn Sie einen vorhandenen Kernel verwenden, müssen Sie die Toolchain verwenden, die dem Kernel entspricht. HardFP-Anwendungen funktionieren auf einem SoftFP-Kernel nicht.
Um die Toolchain zu verwenden, checken Sie einfach das Repository aus:
Der
--depth
Parameter bedeutet, dass Sie nicht warten müssen, bis der Repository-Verlauf ebenfalls heruntergeladen wurde (da wir ihn nicht verwenden).Fügen Sie dann die Binärdateien zu Ihrer PATH-Variablen hinzu:
Oder um den PFAD beizubehalten:
Um mit der Werkzeugkette zu kompilieren, können Sie jetzt den
CROSS_COMPILE
Parameter hinzufügen . Zum Beispiel beim Laufenmake
:Oder um dies zu vereinfachen, können Sie die Variable
bashrc
erneut speichern :Und jetzt benutze die Variable beim Kompilieren:
quelle
Beachten Sie, dass ich beim Erstellen der Toolchain mit ct-ng on centos 6.3 auf einem 64-Bit-System die Option zum statischen Verknüpfen von libstdc ++ deaktivieren musste, da das statische Verknüpfen auf der Plattform (anscheinend) nicht unterstützt wurde.
Auch wenn es großartig wäre, die vorgefertigte Toolchain aus dem Git-Repository zu verwenden, scheint diese Kette auf Centos 6.3 nicht zu funktionieren - wahrscheinlich, weil sie für ein moderneres System oder so etwas gebaut wurde. Ich habe nicht wirklich versucht, das runterzureißen.
quelle
Diese Anleitung kann hilfreich sein.
Es hat mir geholfen, meine zum Laufen zu bringen. Ich habe auch einige Kommentare zum Thema Tuning hinzugefügt.
quelle
Wenn Sie von einem schnellen Host für das Kompilieren von Dingen für Ihr RPI profitieren möchten, empfehle ich, in einer Cross-Umgebung über Chroot und QEMU zu arbeiten. Dies ersetzt übrigens einen Cross-Compiler ohne Probleme.
Richten Sie einfach eine Debian-Cross-Umgebung mit deboostrap / multistrap ein
(siehe Kapitel QEMU / Debootstrap-Ansatz) und fertig.
quelle
Für den Fall, dass Sie eine Cross-Kompilierung von OS X durchführen möchten: Hier ist der großartige Artikel (und der einzige, der im Web funktioniert, den ich gefunden habe).
Das Beste ist, dass der Autor eine vollständige vorkompilierte Toolchain zur Verfügung stellt , sodass Sie nur ein dmg-Image herunterladen, entpacken und einbinden müssen. Und fertig, Sie sind bereit für das Cross-Compilieren.
quelle
Wenn Sie Ubuntu 64-Bit-Edition und die Tools von Raspberry Pi SVN installiert haben und den Fehler erhalten:
Renn einfach:
quelle
Die Carlson-Minot Inc. bietet eine vorgefertigte Toolchain für Bare-Metal- und GNU / Linux-ARM-Ziele. Diese Toolchain basiert auf der Mentor Graphics Sourcery Lite-Toolchain mit Korrekturen und Anpassungen für die Erstellung auf OS X. Siehe
quelle