Ich versuche, die Gnu Arm Toolchain für Ubuntu zu installieren. Ich habe zuerst den Teer von CodeSourcery heruntergeladen. Wenn ich jedoch in den bin-Ordner gehe, kann ich keine der Binärdateien ausführen. Ich habe es mit ./ und ohne versucht und es in den PATH gebracht und es sagt mir immer "Command not Found", aber die Datei befindet sich in dem Ordner direkt vor mir. Dann habe ich versucht, sudo apt-get installieren gcc-arm-linux-gnueabi außer, nachdem es sagt, es hat erfolgreich installiert, ich kann es nicht mit whereis gcc-arm-linux-gnueabi finden. Kann jemand helfen?gcc-arm-linux-gnueabi Befehl nicht gefunden
Antwort
versuchen, den folgenden Befehl ein:
which gcc-arm-linux-gnueabi
Es ist sehr wahrscheinlich der Befehl in /usr/bin
installiert ist.
CodeSourcery Konvention ist Präfix arm-none-linux-gnueabi-
für alle ausführbaren Dateien, nicht gcc-arm-linux-gnueabi
, die Sie erwähnen. Der Standardname für CodeSourcery gcc lautet also arm-none-linux-gnueabi-gcc
.
Nachdem Sie CodeSourcery G ++ installiert haben, müssen Sie das CodeSourcery-Verzeichnis in Ihre PATH
einfügen.
Normalerweise bevorzuge ich CodeSourcery in Verzeichnis wie /opt/arm-2010q1
oder etwas ähnliches zu installieren. Wenn Sie nicht wissen, wo Sie es installiert haben, können Sie es mit locate arm-none-linux-gnueabi-gcc
finden, jedoch müssen Sie möglicherweise zwingen, Ihre locate db mit sudo updatedb
zu aktualisieren, bevor locate
ordnungsgemäß funktioniert.
Nachdem Sie ermittelt haben, wo Ihre CodeSourcery installiert ist, fügen Sie Ihre PATH durch ~/.bashrc
wie diese Bearbeitung:
PATH=/opt/arm-2010q1/bin:$PATH
Auch ist es üblich und sehr bequem
CROSS_COMPILE=arm-none-linux-gnueabi-
in Ihrem zu definieren .bashrc
, denn mit CROSS_COMPILE
definiert, verwenden die meisten Tools automatisch den richtigen Compiler für die ARM-Kompilierung, ohne dass Sie etwas tun.
Es ist keine CodeSourcery-Konvention, es ist eine GNU/GCC-Sache namens Target-Triplet mit der Form * cpu-vendor-os * – iabdalkader
@mux: Ich habe nicht gesagt, dass es CodeSourcery-Konvention war. Ich habe nur gesagt, dass es üblich ist und die meisten Werkzeuge werden es automatisch benutzen (was sehr gut wegen der GCC-Ziel-Triplet-Sache sein kann). – mvp
Sie haben eine Toolchain installiert, die für i686 auf einer Box kompiliert wurde, auf der ein x86_64-Benutzerland läuft.
Verwenden Sie eine i686-VM.
Mit Multiarch unter Linux ist dies kaum ein guter Rat, besonders für etwas so Kleines wie das Einrichten eines Compilers für Cross-Compiling. – rbaleksandar
Kompilieren Sie auf einem 64-Bit-Betriebssystem? Versuchen Sie:
sudo apt-get install ia32-libs
Ich hatte das gleiche Problem beim Versuch, den Raspberry Pi Kernel zu kompilieren. Ich kompilierte auf Ubuntu 12.04 64-Bit und die Toolchain benötigt ia32-libs, um auf einem 64-Bit-System zu arbeiten.
Siehe http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
Auf Ubuntu, wenn ich diesen Befehl gebe, wirft er Fehler - Paket ia32-libs ist nicht verfügbar, wird aber von einem anderen Paket bezeichnet. –
@MadhavanKumar versuchen Sie es sudo apt-get installieren lib32z1 lib32ncurses5 lib32bz2-1.0 –
Es ist ein wenig kontraintuitiv. Die Toolchain heißt gcc-arm-linux-gnueabi.So rufen Sie die Werkzeuge, führen Sie die folgenden Schritte aus: Arm-linux-gnueabi-xxx
xxx ist gcc oder ar oder ld usw.
, wenn Sie auf 64-Bit-Betriebssystem sind dann Sie müssen diese zusätzlichen Bibliotheken installieren.
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
Auf Debian 8 scheint es, dass die dritte fehlt: Paket lib32bz2-1.0 ist nicht verfügbar, wird aber von einem anderen Paket verwendet. Dies kann bedeuten, dass das Paket fehlt, veraltet ist oder ist nur aus einer anderen Quelle verfügbar E: Paket ‚lib32bz2-1.0‘ hat keine Installation Kandidat – Will
bekamen den gleichen Fehler beim Versuch, den Raspberry Pi-Kernel auf Ubunto 14.04.03 64bit unter VM zu überqueren kompilieren. Die Lösung wurde gefunden here:
-Install-Pakete für Cross-Compiling auf der Ubuntu-Box verwendet.
sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev
-Download die Werkzeugkette
cd ~
git clone https://github.com/raspberrypi/tools
-Add die Werkzeugkette auf Ihrem Weg
PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Bekanntmachung der x64-Version in dem Pfad Befehl
fixiert, mit:
sudo apt-get install gcc-arm*
Wenn Sie auf einem 64-Bit-Build von Ubuntu oder Debian sind (siehe z. 'Cat/proc/version') sollten Sie einfach die 64-Bit-Cross-Compiler verwenden, wenn Sie
geklontgit clone https://github.com/raspberrypi/tools
dann die 64-Bit-Tools sind in
tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64
Verwendung dieses Verzeichnis für die gcc-Toolchain. Eine nützliche Anleitung zum Kompilieren, dass ich hier Building and compiling Raspberry PI Kernel verfügbar gefolgt (mit dem -x64 Weg von oben als $ {CCPREFIX})
Für mich auf Debian 8, folgen Sie den Anweisungen hier: [ RPi-Kernel] (https://www.raspberrypi.org/documentation/linux/kernel/building.md) Ich musste den vollständigen PFAD in CROSS_COMPILE setzen, obwohl ich PATH wie gesagt eingestellt hatte. Also musste ich das tun: 'sudo machen ARCH = arm CROSS_COMPILE =/home/wird/kernel/mybuild/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-INSTALL_MOD_PATH = mnt/ext4 modules_install> makemodules6.txt' – Will
ich auch das gleiche Problem konfrontiert wurde und gelöst es nach der folgenden Abhängigkeit der Installation:
sudo apt-get install lib32z1-dev
Wenn Sie aus dem Quellcode installieren, müssen Sie die Quelle kompilieren und die Bin installieren. Wenn Sie jedoch kompiliertes Bin herunterladen, können Sie es ausführen. könnte mehr Informationen geben, nachdem Sie apt es zu installieren. versuche, 'sudo find/-name" * gcc-arm * "' zu verwenden, um zu finden, ob es einige bin –
apt-get install ia32-libs gibt. Sie versuchen, 32-Bit-Binärdateien auf einer 64-Bit-Linux-Installation auszuführen. Gewesen, gemacht ... –