Comment configurer GCC pour la compilation croisée pour le processeur ARM? L'hôte serait sur x86_64 (AMD64 - Ubuntu 12.04) et la cible serait ARM (Raspberry Pi ainsi que Pandaboard - fera des compilations séparées pour chacun)?
Installez les packages gcc-arm-linux-gnueabi
et binutils-arm-linux-gnueabi
, puis utilisez simplement arm-linux-gnueabi-gcc
au lieu de gcc
pour la compilation.
Vous devez faire attention à la saveur de linux et de binutils que vous avez sur votre système cible. Le plus récent est hardfloat, dans ce cas vous feriez:
sudo apt-get install gcc-arm-linux-gnueabihf
Ceci introduit l'environnement complet de compilation croisée, y compris binutils.
Le fournisseur d’images disque doit également fournir un compilateur croisé compatible
C'est la seule méthode fiable.
Pour les RPI en particulier, les compilateurs croisés fournis sont disponibles sur: lien et peuvent être utilisés comme expliqué à l’adresse suivante: lien
git clone https://github.com/raspberrypi/tools
export PATH="$(pwd)/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:${PATH}"
printf '#include <stdio.h>\nint main() { puts("hello world"); }\n' > hello_world.c
printf '#include <iostream>\nint main() { std::cout << "hello world" << std::endl; }\n' > hello_world.cpp
arm-linux-gnueabihf-gcc -std=c99 -o hello_world_c hello_world.c
arm-linux-gnueabihf-g++ -std=c++11 -o hello_world_cpp hello_world.cpp
Si vous choisissez votre propre compilateur croisé à tort, voici ce qui peut arriver:
Mon alternative préférée est de construire votre propre image avec Buildroot: lien Cela construit tout à partir de la source et assure que tout est compatible.
Lire d'autres questions sur les étiquettes gcc compiling raspberrypi arm