J'essaie d'installer la chaîne d'outils gnu arm pour Ubuntu. J'ai d'abord téléchargé le goudron de CodeSourcery. Cependant, lorsque je vais dans le dossier bin, je ne peux exécuter aucun des binaires. J'ai essayé avec ./ et sans et en le mettant dans le CHEMIN et il continue de me dire "Commande introuvable" mais le fichier est là dans le dossier juste en face de moi. Ensuite, j'ai essayé Sudo apt-get install gcc-arm-linux-gnueabi, sauf après qu'il indique qu'il a été installé avec succès, je ne le trouve pas avec whereis gcc-arm-linux-gnueabi. Quelqu'un peut-il aider?
Compilez-vous sur un système d'exploitation 64 bits? Essayer:
Sudo apt-get install ia32-libs
J'ai eu le même problème en essayant de compiler le noyau Raspberry Pi. Je faisais de la compilation croisée sur Ubuntu 12.04 64 bits et la chaîne d'outils nécessite ia32-libs pour fonctionner sur un système 64 bits.
Voir http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
fixe, en utilisant:
Sudo apt-get install gcc-arm*
La convention CodeSourcery consiste à utiliser le préfixe arm-none-linux-gnueabi-
pour tous les exécutables, pas gcc-arm-linux-gnueabi
que vous mentionnez. Ainsi, le nom standard de CodeSourcery gcc serait arm-none-linux-gnueabi-gcc
.
Après avoir installé CodeSourcery G ++, vous devez ajouter le répertoire CodeSourcery dans votre PATH
.
En général, je préfère installer CodeSourcery dans un répertoire comme /opt/arm-2010q1
ou quelque chose comme ça. Si vous ne savez pas où vous l'avez installé, vous pouvez le trouver en utilisant locate arm-none-linux-gnueabi-gcc
, mais vous devrez peut-être forcer la mise à jour de votre base de données de localisation à l'aide de Sudo updatedb
avant locate
fonctionnera correctement.
Après avoir identifié où votre CodeSourcery est installé, ajoutez-le à votre PATH en modifiant ~/.bashrc
comme ça:
PATH=/opt/arm-2010q1/bin:$PATH
De plus, il est habituel et très pratique de définir
CROSS_COMPILE=arm-none-linux-gnueabi-
dans votre .bashrc
, car avec CROSS_COMPILE
défini, la plupart des outils utiliseront automatiquement le compilateur approprié pour la compilation ARM sans que vous ne fassiez rien.
si vous utilisez un système d'exploitation 64 bits, vous devez installer ces bibliothèques supplémentaires.
Sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
a obtenu la même erreur lors de la tentative de compilation croisée du noyau Raspberry Pi sur Ubunto 14.04.03 64 bits sous VM. la solution a été trouvée ici :
-Installer les packages utilisés pour la compilation croisée sur la boîte Ubuntu.
Sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev
-Téléchargez la chaîne d'outils
cd ~
git clone https://github.com/raspberrypi/tools
-Ajoutez la chaîne d'outils à votre chemin
PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
remarquez la version x64 dans la commande path
J'étais également confronté au même problème et l'ai résolu après avoir installé la dépendance suivante:
Sudo apt-get install lib32z1-dev
Si vous utilisez une version 64 bits d'ubuntu ou debian (voir par exemple `` cat/proc/version ''), vous devez simplement utiliser les compilateurs croisés 64 bits, si vous avez cloné
git clone https://github.com/raspberrypi/tools
alors les outils 64 bits sont en
tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64
utilisez ce répertoire pour la chaîne d'outils gcc. Un tutoriel utile pour la compilation que j'ai suivi est disponible ici Construction et compilation du noyau Raspberry Pi (utilisez le chemin -x64 ci-dessus comme $ {CCPREFIX})
C'est un peu contre-intuitif. La chaîne d'outils s'appelle gcc-arm-linux-gnueabi. Pour appeler les outils, exécutez ce qui suit: arm-linux-gnueabi-xxx
où xxx est gcc ou ar ou ld, etc.
Vous avez installé une chaîne d'outils qui a été compilée pour i686 sur une boîte qui exécute un espace utilisateur x86_64.
Utilisez une machine virtuelle i686.
essayez la commande suivante:
which gcc-arm-linux-gnueabi
Il est très probable que la commande soit installée dans /usr/bin
.