Cross-Compilation für Raspberry Pi in GCC. Wo soll man anfangen?

TL/DR: Wo finde ich mehr Informationen über den Aufbau einer GCC-4.7.0 cross-compiling toolchain für ARM (gnueabi) - Plattform (läuft auf einem Raspberry Pi Gerät)?

Ich habe gerade got a brand new Raspberry Pi und ich bin sehr gespannt, um mit der Programmierung beginnen. Ich habe es geschafft, installieren Sie den GCC toolchain (ich bin mit dem Arch-Linux-system-image) und kompiliert einige basic-Programme, alle feinen arbeiten.

Ich habe auch versucht zu kompilieren, die Boost-Bibliotheken, da ich oft nutzen Sie in meine Projekte und alles schien zu funktionieren, indem Sie die folgenden Anweisungen (./bootstrap.sh + ./b2) außer der Tatsache, dass die Zusammenstellung war quälend langsam. Ich ließ es für ein paar Stunden, aber es kaum gestern den ersten paar source Dateien. Nachdem ich es ausgeführt, für die Nacht, entdeckte ich, dass der build-Prozess abgebrochen aufgrund von RAM-Mangel.

So, meine Vermutung ist, dass der Rasp Pi ist einfach untermotorisiert für das kompilieren etwas von solcher Größe wie Boost. So, die cross-Kompilierung kommt mir in den Sinn. Aber, obwohl es eine Menge von Informationen über ARM cross-compilation erhältlich online finde ich es verwirrend. Wo kann man noch starten?

Habe ich eine aktuelle GCC-version (4.7.0) auf meinen Raspberry Pi, so würde ich am Liebsten das cross-kompilieren mit der gleichen version. Wo bekomme ich das GCC 4.7.0 toolchain für ARM? (Ich wird kompiliert auf x86 CentOS 6.2)

Edit:

Ich freigegeben, nicht benötigte GPU-Speicher eingerichtet und eine 4GB swap-partition auf einem USB-Laufwerk, während die build-Dateien auf einer NFS-Freigabe. Boost ist nun das kompilieren sehr viel schneller, also es ist überschaubar. Ich würde immer noch gerne wissen, wie kann ich einrichten einer GCC-4.7 toolchain zur cross-Kompilierung auf meinem x86 PC aber, da ich vorhabe eine Menge tun, um zu kompilieren, und ich möchte, dass es so schnell wie möglich.

Edit 2:

Da GCC 4.7.0 ist relativ neu, es scheint sich nicht um eine pre-built cross-compiler (i386->ARM). Ich werde wohl einen selber erstellen, das scheint eine nicht-triviale Aufgabe (ich habe versucht und sind gescheitert). Kennt jemand ein tutorial zu Folgen, für den Aufbau einer GCC-cross-compiler, der hoffentlich einer der letzten Versionen?

Habe ich versucht, mit das große shell-Skript (das funktioniert großartig für den Aufbau einer derselben-arch-compiler) und ich habe erfolgreich gebaut binutils und GCC Voraussetzungen, aber dann GCC-build-gehalten nicht mit vielen kryptischen Fehler. Ich bin wirklich hier verloren, also ich würde schätzen Ihre Hilfe.

GCC auf Raspberry Pi so konfiguriert wurde, dass mit

--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib 
--mandir=/usr/share/man --infodir=/usr/share/info 
--with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-shared 
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit 
--disable-libunwind-exceptions --enable-clocale=gnu 
--disable-libstdcxx-pch --enable-libstdcxx-time 
--enable-gnu-unique-object --enable-linker-build-id --with-ppl 
--enable-cloog-backend=isl --enable-lto --enable-gold 
--enable-ld=default --enable-plugin --with-plugin-ld=ld.gold 
--with-linker-hash-style=gnu --disable-multilib --disable-libssp 
--disable-build-with-cxx --disable-build-poststage1-with-cxx 
--enable-checking=release --host=arm-unknown-linux-gnueabi 
--build=arm-unknown-linux-gnueabi 

Edit 3:

Ich es geschafft, bauen ein 4,7-GCC toolchain für ARM (yay!) mit dieses shell-Skript wie vorgeschlagen von Benutzer dwelch in die Kommentare. Ich habe auch gebaut newlib und libstdc++ mit dieser Artikel als Leitfaden. Die toolchain funktioniert gut, aber LS ich führen Sie die ausführbare Datei auf meinem Raspberry Pi, schlägt es mit Illegal instruction. Was könnte die Ursache sein?

InformationsquelleAutor der Frage Tibor | 2012-06-10

Schreibe einen Kommentar