Me gusta usar gcc para compilar pequeños y pequeños programas C y C ++ en mi computadora principal. Sin embargo, también tengo una Raspberry Pi y, al ser una computadora de un solo núcleo de 700 MHz, preferiría no tener que hacer mi trabajo de desarrollo cada vez que quiera crear un binario para ella. ¿Cómo (porque sé que hay una manera) compilo mi programa para Raspberry Pi con mi laptop x86? ¿Y hay alguna manera de que pueda compilar programas C (++) en el Pi pero producir un binario x86? Si sirve de ayuda, "El SoC es un Broadcom BCM2835. Contiene un ARM1176JZFS, con coma flotante ..." (según las preguntas frecuentes oficiales de Raspberry Pi ).
gcc
cross-compilation
raspberrypi
fouric
fuente
fuente
Respuestas:
Utilizando una combinación de hurgar en los
apt
repositorios y los extremadamente excelentes sistemas Building Embedded Linux (segunda edición, 2008, O'Reilly), encontré esto:Ese es el nombre del comando y el paquete que instala para adquirirlo. Una vez invocado, actúa exactamente como "vainilla"
gcc
, con la única excepción de que crea paquetes para la arquitectura ARM (o un subconjunto que incluye al menos el BCM2835). Building Embedded Linux Systems (pág. 93-94) explica que los nombres utilizados para invocar las herramientas GNU de forma cruzada siguen este formato:El
-gcc
final del ejemplo superior es el componente , que se utiliza para especificar qué parte debinutils
usted desea usar. Se puede cambiar por otro componente de la cadena de herramientas GNU, comold
(enlazador) oas
(ensamblador). Porquearm-linux-gnueabi-gcc
,arm
es la arquitectura,linux
es el núcleo,gnueabi
es el sistema operativo ygcc
es el componente. ¿Dónde está el fabricante? Aparentemente, el fabricante se puede especificar como "desconocido", ya que rara vez hace la diferencia, o se puede omitir por completo (incluso lo haríaarm-linux-unknown-gnueabi-gcc
).fuente
Método documentado oficialmente
https://www.raspberrypi.org/documentation/linux/kernel/building.md ( GitHub )
Probado en Ubuntu 17.10, repositorio de herramientas en 5caa7046982f0539cf5380f94da04b31129ed521
fuente
No estoy seguro al 100%, pero, usando https://tandrepires.wordpress.com/2012/08/01/raspberry-pi-openelec-pvr-dvb-t/ , podría intentar: 1) Bibliotecas requeridas:
2) Compile el proyecto con las siguientes opciones, donde N es el número de núcleos de su CPU x86:
Espero que ayude. ``
fuente
make
para compilar un proyecto que se configuró para usar make ("PROJECT = RPi ARCH = arm PVR = yes make release -j N", lo anterior es solo un montón de variables de shell). Ahora, en realidadmake
usa gcc, pero para usar la línea de código proporcionada, tendría que obtener la fuente de make y luego revisar la mayor parte buscando las diferentes partes de código que agregarían los argumentos necesarios para gcc. ¡Gracias por intentarlo!