J'aime utiliser gcc pour compiler de petits petits programmes C et C ++ sur mon ordinateur principal. Cependant, j'ai également un Raspberry Pi et, étant un ordinateur monocœur à 700 MHz, je préférerais ne pas avoir à faire mon travail de développement dessus chaque fois que je veux créer un binaire pour lui. Comment (car je sais qu'il existe un moyen) de compiler de manière croisée mon programme pour le Raspberry Pi à l'aide de mon ordinateur portable x86? Et existe-t-il un moyen de compiler des programmes C (++) sur le Pi mais de produire un binaire x86? Si c'est une aide, "Le SoC est un Broadcom BCM2835. Il contient un ARM1176JZFS, avec virgule flottante ..." (selon la FAQ officielle du Raspberry Pi ).
gcc
cross-compilation
raspberrypi
fouric
la source
la source
Réponses:
En utilisant une combinaison de fouilles dans les
apt
référentiels et les très excellents systèmes Linux embarqués de construction (2e édition, 2008, O'Reilly), j'ai trouvé ceci:Il s'agit à la fois du nom de la commande et du package que vous installez pour l'acquérir. Une fois invoqué, il agit exactement comme "vanilla"
gcc
, à la seule exception qu'il construit des packages pour l'architecture ARM (ou un sous-ensemble comprenant le BCM2835, au moins). La construction de systèmes Linux embarqués (p. 93-94) explique que les noms utilisés pour appeler les outils GNU de manière croisée suivent ce format:À
-gcc
la fin de l'exemple le plus en haut se trouve le composant , utilisé pour spécifier quelle partie debinutils
vous souhaitez utiliser. Il peut être échangé contre un autre composant de la chaîne d'outils GNU, tel queld
(éditeur de liens) ouas
(assembleur). Cararm-linux-gnueabi-gcc
,arm
est l'architecture,linux
est le noyau,gnueabi
est le système d' exploitation etgcc
est le composant. Où est le fabricant? Apparemment, le fabricant peut être spécifié comme "inconnu", car il fait rarement une différence, ou laissé de côté (y compris cela feraitarm-linux-unknown-gnueabi-gcc
).la source
Méthode officiellement documentée
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Testé dans Ubuntu 17.10, repo des outils à 5caa7046982f0539cf5380f94da04b31129ed521
la source
Je ne suis pas sûr à 100%, mais, en utilisant https://tandrepires.wordpress.com/2012/08/01/raspberry-pi-openelec-pvr-dvb-t/ , vous pouvez essayer: 1) Bibliothèques requises:
2) Compilez le projet avec les options suivantes, où N est le nombre de cœurs de votre CPU x86:
J'espère que ça aide. "
la source
make
pour compiler un projet qui a été configuré pour utiliser make ("PROJECT = RPi ARCH = arm PVR = yes make release -j N", ce qui précède n'est qu'un tas de variables shell). Maintenant, en réalité,make
utilise gcc, mais pour utiliser la ligne de code fournie, je devrais obtenir la source de make, puis parcourir la majeure partie de celui-ci en recherchant les différentes parties de code qui ajouteraient les arguments nécessaires à gcc. Merci d'avoir essayé, cependant!