Tengo una gran aplicación que he escrito. Puedo compilar con éxito la aplicación en los siguientes escenarios:
- en una compilación nativa para el host i386 con Ubuntu 12.04
- de forma nativa en un PandaBoard con Ubuntu 12.04 (esto lleva mucho tiempo)
- usando Qemu y un chroot en la PC host para el objetivo armhf PandaBoard (esto lleva mucho tiempo)
Me gustaría compilar de forma cruzada la aplicación en el host i386 para que se ejecute en un objetivo como PandaBoard para completar las compilaciones de manera oportuna. Hasta ahora, los intentos realizados utilizando la cadena de herramientas arm-linux-gnueabihf en los repositorios han producido archivos binarios que no se ejecutan correctamente. En esta etapa, no tengo planes de empaquetar el software.
¿Cuál es la forma recomendada para lograr una compilación cruzada exitosa?
software-installation
cross-compilation
Jonathan Cave
fuente
fuente
Respuestas:
https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch
https://wiki.ubuntu.com/MultiarchCross
Ubuntu tiene una cadena de herramientas cruzadas,
apt-get install gcc-arm-linux-gnueabihf
pero el trabajo en la cadena de herramientas de próxima generación se trata aquí: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/Hay una serie de soluciones que son necesarias en este momento. Por ejemplo, si usa enlaces indirectos (cubiertos en la página wiki de linaro). También debe evitar ejecutar binarios extranjeros justo después de compilarlos.
Además, es realmente más maduro con autotools.
Obtuve mi paquete para la compilación cruzada bastante rápido.
fuente