Me gustaría compilar de forma cruzada los lenguajes de la familia C (C, C ++, Objective-C y Objective-C ++) a la Raspberry Pi usando Clang y LLVM en una computadora de compilación de una arquitectura diferente. ¿Cómo puedo hacer esto?
Me gustaría compilar de forma cruzada los lenguajes de la familia C (C, C ++, Objective-C y Objective-C ++) a la Raspberry Pi usando Clang y LLVM en una computadora de compilación de una arquitectura diferente. ¿Cómo puedo hacer esto?
Respuestas:
Acabo de completar mi artículo, Compilación cruzada para Raspberry de Sierra , sobre exactamente esto. Sin embargo, bajo Mac OS Sierra. Pero para el sonido metálico importa un poco.
En este artículo he compartido experiencias (lo que me costó algunos días de sufrimiento). Espero que te sea útil. En resumen, todo lo que tiene que hacer es especificar rootfs y target triple:
path/to/clang --target=arm-linux-gnueabihf --sysroot=/some/path/arm-linux-gnueabihf/sysroot my-happy-program.c -fuse-ld=lld
Agregué la -fuse-ld=lld
opción, porque de lo contrario clang intentará buscar binutils heredados.
Seguí este artículo y parece funcionar bien para programas triviales (consola / cadena / cosas de matemáticas, no muchas banderas de optimización). Usé la versión 1.19 de crosstool-ng en una computadora portátil x86-64 con ZenWalk 7.0
También parece haber esta publicación en SO, lo que podría ser útil (aún no lo he leído completamente).