Ya hice esta pregunta en Stack Overflow, pero me gustaría saber si alguien logró construir una cadena de herramientas GCC 4.7 para la compilación cruzada ARM (para un host Linux x86 / x86-64). Hay muchas instrucciones para construir GCC desde la fuente y muchos compiladores cruzados disponibles para versiones anteriores a 4.7 GCC, pero no la última.
Compilar en Rasp Pi funciona bien, pero es demasiado lento para fines prácticos.
Estoy ansioso por compilar y me gustaría utilizar las últimas y mejores herramientas.
software-development
cross-compilation
gcc
tlhIngan
fuente
fuente
Respuestas:
Encontré estas instrucciones Cómo construir un compilador cruzado para su Raspberry Pi . Es un gran recorrido mediante el uso de una
crosstool-ng
herramienta que simplifica la configuración de una compilación de compilación cruzada MUCHO (tiene una buena interfaz basada en maldiciones) y es compatible con GCC 4.7.Seguí estos pasos y terminé con una compilación exitosa de un compilador cruzado 4.7.
crosstool-ng
desde aquí (utilicé la versión 1.15.2)../configure
/make
/install
cd
crearlo.ct-ng menuconfig
. Se le presentará un buen conjunto de menús para configurar su compilación.Elija un directorio de prefijo adecuado . Este es el directorio en el que se instalarán su compilador y bibliotecas (todo está bien básicamente, solo asegúrese de que el directorio esté vacío).
Vaya al menú de opciones de Target .
También es posible que desee establecer el parámetro de punto flotante en softfp (consulte esto para obtener más información), pero hardfp es más apropiado para Raspbian.
Vaya al menú de la biblioteca C y elija uno. El valor predeterminado es eglibc, pero ese no me funcionó bien, así que utilicé glibc (la versión más nueva).
crosstool-ng
ct-ng build
en el mismo directorio. Espere un momento (aproximadamente 45 minutos en mi caso) y su compilador cruzado debería estar listo.Parece que funciona muy bien!
fuente
De hecho, las últimas y mejores herramientas no necesitan ser creadas por usted mismo. En el Repositorio de Raspberry Pi Tool GitHub encontrará las cadenas de herramientas
X86_64
yx686
para el software de compilación cruzada.Recomiendo usar la
x86-linux64-cross-arm-linux-hardfp
cadena de herramientas, ya que compilará para Hard Floating Point, lo que dará como resultado un sistema mucho más rápido.Nota: Si está utilizando un núcleo existente, entonces deberá usar la cadena de herramientas que coincida con el núcleo. Las aplicaciones HardFP no funcionarán en un núcleo SoftFP.
Para usar la cadena de herramientas, simplemente consulte el repositorio:
El
--depth
parámetro significará que no tiene que esperar a que también se descargue el historial del repositorio (ya que no lo usaremos).Luego agregue los binarios a su variable PATH:
O para persistir el CAMINO:
Para compilar con la cadena de herramientas, ahora puede agregar el
CROSS_COMPILE
parámetro. Por ejemplo, cuando se ejecutamake
:O para facilitar esto, puede guardar la variable
bashrc
nuevamente:y ahora usa la variable al compilar:
fuente
Tenga en cuenta que al compilar la cadena de herramientas utilizando ct-ng en centos 6.3 en un sistema de 64 bits, me vi obligado a anular la selección de la opción de vincular estáticamente libstdc ++ porque el enlace estático no era compatible en la plataforma (aparentemente).
Además, aunque sería genial usar la cadena de herramientas preconstruida del repositorio de git, esa cadena no parece funcionar en Centos 6.3, probablemente porque está construida para un sistema más moderno o algo así. Realmente no traté de ejecutar esto.
fuente
Esta guía puede ser útil.
Me ayudó a poner en marcha el mío. También agregué algunos comentarios sobre el ajuste.
fuente
Si desea beneficiarse de un host rápido para compilar cosas para su RPI, le sugiero que trabaje en entornos cruzados a través de chroot y QEMU. Esto, por cierto, reemplaza a un compilador cruzado sin problemas.
Simplemente configure un entorno cruzado de Debian usando deboostrap / multistrap
(vea el capítulo QEMU / enfoque de debootstrap) y ya está.
fuente
En caso de que vaya a realizar una compilación cruzada desde OS X: aquí está el gran artículo (y el único que funciona en la web que encontré).
Lo mejor es que el autor proporciona una cadena de herramientas precompilada completa , por lo que solo necesita descargar, descomprimir y montar la imagen dmg. Y eso es todo, estás listo para realizar una compilación cruzada.
fuente
Si instaló Ubuntu 64 bits edition y las herramientas de Raspberry Pi SVN y obtiene el error:
solo corre:
fuente
Carlson-Minot Inc. proporciona una cadena de herramientas preconstruida para objetivos ARM tanto de metal desnudo como GNU / Linux. Esta cadena de herramientas se basa en la cadena de herramientas Mentor Graphics Sourcery Lite con correcciones y adopciones para construir en el OS X. Ver
fuente