So installieren Sie das Raspberry Pi-cross-compiler auf meinem Linux-host-Maschine?

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 von GitHub.

Ich habe die toolchain, aber ich weiß nicht wirklich verstehen, wie "installiere" es. 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?

  • Versuchen Sie, --sysroot über CMAKE_C{XX}_FLAGS zu installieren, dir.
  • Ich versuchte einige unterschiedliche Wege --sysroot, aber das hat nicht geholfen. Ich bin mir nicht wirklich sicher, welchen Weg ich sollte angeben, für die sysroot. Siehe oben bezüglich der Verzeichnis-Struktur der toolchain. Auch, etwas Googlen scheint darauf hinzudeuten, dass --sysroot nicht helfen, für libstdc++.
  • Ich würde versuchen entweder /gcc-linearo-arm-linux-gnueabihf-raspbian oder /gcc-linearo-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf
  • gehen Sie hier, launchpad.net/gcc-arm-embedded und laden den tarball herunter und entpacken es. Stellen Sie Ihren Pfad auf das bin Verzeichnis...fertig. Oder gehen Sie zu codesourcery.com (jetzt mentor graphics) Holen Sie sich die lite-version, entpacken/bz, setzen Sie Ihren Weg in das bin Verzeichnis...fertig.
  • Bezogen auf RPI-SE: raspberrypi.stackexchange.com/questions/64273/...
InformationsquelleAutor pqvst | 2013-10-03
Schreibe einen Kommentar