Installieren von Raspberry Pi Cross-Compiler
Ich bin versucht zu bekommen cross-compiling für den Raspberry Pi an meinem Ubuntu-Rechner.
Während meiner ersten versuche war ich mit der arm-linux-gnueabi-compiler, welcher in der Ubuntu-repo. Ich habe diese arbeiten. Ich war in der Lage, all meine Abhängigkeiten und der Verwendung des cross-Compilers in meinen cmake-Projekt.
Aber ich glaube, ich sollte mit der hf-version, also wechselte ich zu arm-linux-gnueabihf. Dann erkannte ich, dass dies nicht funktioniert mit Raspberry Pi, da es armv6.
Nach etwas Googlen habe ich dann gefunden, die vorgefertigte toolchain aus GitHub: https://github.com/raspberrypi/tools.
Ich habe die toolchain, aber ich weiß nicht wirklich verstehen, wie Sie "installieren". Ich extrahiert die Dateien in mein home-Verzeichnis. Die Verzeichnis-Struktur sieht wie folgt aus:
/gcc-linearo-arm-linux-gnueabihf-raspbian
/arm-linux-gnueabihf
/bin
(contains g++, gcc, etc)
/lib
(contains libstdc++ library)
/bin
(contains arm-linux-gnueabihf-g++, arm-linux-gnueabihf-...)
/lib
(gcc lib stuff)
Wenn ich das Verzeichnis ändern, um den INNEREN Ordner " bin " ich bin in der Lage zu kompilieren Sie ein test-Programm aus dem terminal ohne irgendwelche Probleme.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/
arm-linux-gnueabihf/bin$ g++ test.cpp -o test
Dann habe ich versucht zu kompilieren Sie ein test-Programm in den ÄUßEREN bin-Ordner, die enthält das Präfix-Versionen der tools.
~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$
arm-linux-gnueabihf-g++ test.cpp -o test
Jedoch, wenn ich versuche, verwenden Sie die compiler jetzt (von außen das innere bin-Verzeichnis), es ist nicht in der Lage zu finden, die libstdc++ - shared-library, die mit der toolchain:
arm-linux-gnueabihf-gcc: error while loading shared libraries:
libstdc++.so.6: cannot open shared object file: No such file or directory.
Darüber hinaus möchte ich in der Lage sein zu verwenden, der compiler ohne navigieren Sie zu dem bin Verzeichnis. Also habe ich versucht, indem die ÄUßERE Verzeichnis bin (da ich möchte, dass die Präfix-Versionen) und die beiden lib-Verzeichnisse zu meinem WEG:
export PATH=$PATH:~/tools/.../bin
export PATH=$PATH:~/tools/.../lib
export PATH=$PATH:~/tools/.../.../lib
Jedoch, diese Ergebnisse in die gleichen Fehler. Wie soll ich das "installieren" der toolchain, so dass ich kann verwenden Sie die toolchain von überall her, nur wie kann ich, wenn ich den cross-Compiler aus dem Ubuntu repo?
InformationsquelleAutor der Frage pqvst | 2013-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich versuche zu schreiben so ein tutorial für Euch, so wird es leicht, zu Folgen.
Voraussetzungen
Bevor Sie beginnen, müssen Sie sicherstellen, dass Folgendes installiert ist:
Let ' s cross kompilieren eine Torte!
Zunächst einen Ordner in Ihrem home-Verzeichnis genannt
raspberrypi
.Gehen Sie in diesen Ordner, und ziehen Sie den GESAMTEN Ordner tools, die Sie bereits erwähnt:
Sie wollte, verwenden Sie den folgenden der 3 diejenigen, die
gcc-linaro-arm-linux-gnueabihf-raspbian
, wenn ich nicht falsch gelesen.Gehen Sie in Ihr home-Verzeichnis und fügen Sie hinzu:
dem Ende der Datei mit dem Namen
~/.bashrc
Nun können Sie sich entweder Abmelden und wieder anmelden (d.h. starten Sie Ihre terminal-Sitzung), oder führen Sie
. ~/.bashrc
in Ihrem terminal abholenPATH
hinaus in Ihrem aktuellen terminal-Sitzung.Nun, stellen Sie sicher, dass Sie Zugriff auf den compiler
arm-linux-gnueabihf-gcc -v
. Sie sollten etwas wie diese:Aber hey! Ich Tat, und die libs noch funktionieren nicht!
Wir sind noch nicht fertig! Bisher haben wir nur die Grundlagen.
In Ihrem
raspberrypi
Ordner, erstellen Sie einen Ordner namensrootfs
.Nun müssen Sie kopieren die gesamte
/lib
und/usr
Verzeichnis zu diesem neu erstellten Ordner. Ich in der Regel bringen die rpi-image und kopieren es über rsync:wo
192.168.1.PI
wird ersetzt durch die IP-Adresse Ihres Raspberry Pi.Nun, wir müssen schreiben Sie eine
cmake
config-Datei. Öffnen~/home/raspberrypi/pi.cmake
in Ihrem bevorzugten editor und fügen Sie die folgenden:Nun sollten Sie in der Lage sein zu kompilieren
cmake
Programme einfach durch das hinzufügen dieser extra-flag:-D CMAKE_TOOLCHAIN_FILE=$HOME/raspberrypi/pi.cmake
.Mit einem cmake hello world Beispiel:
InformationsquelleAutor der Antwort Stenyg
Konnte ich nicht, der compiler (
x64
version) zu verwenden, diesysroot
bis ich HinzugefügtSET(CMAKE_SYSROOT $ENV{HOME}/raspberrypi/rootfs)
zupi.cmake
.InformationsquelleAutor der Antwort Andreas
Konnte ich nicht kompilieren QT5 mit einer der (ziemlich veraltet) toolchains aus git://github.com/raspberrypi/tools.git. Das configure-Skript gehalten nicht mit einem "konnte nicht ermittelt Architektur" Fehler und massive Pfad Probleme für die include-Verzeichnisse. Was für mich gearbeitet wurde mit der Linaro toolchain
in Kombination mit
Nicht zu beheben die symlinks von den sysroot führt zu einer undefined symbol Fehler wie hier beschrieben: Ein Fehler Gebäudes Qt-Bibliotheken für den raspberry pi
Dies geschah zu mir, wenn ich versuchte, die fixQualifiedLibraryPaths Skript von tools.git. Alles andere ist im detail beschrieben in http://wiki.qt.io/RaspberryPi2EGLFS . Meine Einstellungen konfiguriert wurden:
mit /usr/local/Raspel/sysroot der Pfad von meinem lokalen Raspberry Pi 3 Raspbian (Jessie) system kopieren und /usr/local/qt5pi der Pfad der cross-kompilierte QT, die auch auf das Gerät kopiert werden. Werden Sie sich bewusst, dass Jessie kommt mit GCC 4.9.2 Sie bei der Auswahl der toolchain.
InformationsquelleAutor der Antwort cuffel
Seit der Frage nicht erwähnt das OS möchte ich empfehlen dieses tutorial: Gebäude, Raspberry PI, apps aus dem Windows
Nichts mehr, nichts weniger!
Vorkompilierte GNU-Toolchains verfügbar für Raspberry, Beaglebone, Cubieboard, AVR (Atmel) und mehr
InformationsquelleAutor der Antwort SBF
Ursprünglichen Frage gepostet wurde, schon vor einiger Zeit und in der Zwischenzeit Debian hat riesige Fortschritte im Bereich der multiarch-Unterstützung.
Multiarch ist eine große Errungenschaft für die cross-compilation!
In Kürze die folgenden Schritte sind erforderlich, um nutzen multiarch für Raspbian Jessie cross-Kompilation:
Da dies eine Menge Arbeit, die ich automatisiert haben, die oben genannten setup. Sie können darüber Lesen Sie hier:
http://www.get-edi.io/Cross-Compiling-for-Raspbian/
InformationsquelleAutor der Antwort Matthias Lüscher
es ist eine CDP-Studio-IDE zur Verfügung, das cross-kompilieren und bereitstellen-ganz einfach von windows-und linux und Sie können einfach überprüfen Sie die Himbeer-toolchain Kontrollkästchen während der installation.
(PS. es hat GPIO und I2C-Unterstützung, so dass kein code benötigt wird, der Zugriff auf diese)
Den IDE-demo von Himbeeren verwenden, ist hier oben:
https://youtu.be/4SVZ68sQz5U
und laden Sie die IDE hier: https://cdpstudio.com/home-edition
InformationsquelleAutor der Antwort Jüri T