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 et Pandaboard - effectueront 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 au type de linux et de binutils que vous avez sur votre système cible. La dernière nouveauté est hardfloat, dans ce cas, vous feriez:
Sudo apt-get install gcc-arm-linux-gnueabihf
Cela introduit l'environnement complet de compilation croisée, y compris binutils.
Le fournisseur d'images de disque doit également fournir un compilateur croisé compatible
C'est la seule méthode fiable.
Pour RPI en particulier, les compilateurs croisés fournis sont disponibles à l'adresse suivante: https://github.com/raspberrypi/tools et peuvent être utilisés comme expliqué à l'adresse suivante: https: //raspberrypi.stackexchange .com/questions/64273/install-raspberry-pi-cross-compiler/83215 # 83215
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 à tort votre propre compilateur croisé, les événements suivants peuvent se produire:
Mon alternative préférée est de construire votre propre image avec Buildroot: https://stackoverflow.com/questions/47557262/how-to-download-the-torvalds-linux-kernel-master-recompile-it-and- boot-it-wi/49349237 # 49349237 Ceci construit tout depuis la source et garantit que tout est compatible.