Eu gostaria de compilar linguagens da família C (C, C ++, Objective-C e Objective-C ++) no Raspberry Pi usando Clang e LLVM em um computador de construção de uma arquitetura diferente. Como posso fazer isso?
Eu gostaria de compilar linguagens da família C (C, C ++, Objective-C e Objective-C ++) no Raspberry Pi usando Clang e LLVM em um computador de construção de uma arquitetura diferente. Como posso fazer isso?
Respostas:
Acabei de concluir meu artigo, Compilação cruzada para o Raspberry da Sierra , sobre exatamente isso. No Mac OS Sierra, no entanto. Mas para o clang, isso importa um pouco.
Neste artigo, compartilhei experiências (que me custaram alguns dias de sofrimento). Espero que seja util. Em resumo, tudo o que você precisa fazer é especificar o rootfs e o alvo triplo:
path/to/clang --target=arm-linux-gnueabihf --sysroot=/some/path/arm-linux-gnueabihf/sysroot my-happy-program.c -fuse-ld=lld
Eu adicionei a -fuse-ld=lld
opção, porque caso contrário o clang tentará procurar binutils legados.
Eu segui este artigo e parece funcionar bem em programas triviais (console / string / material matemático, não há muitos sinalizadores de otimização). Usei a versão 1.19 do crosstool-ng em um laptop x86-64 executando o ZenWalk 7.0
Também parece haver esse post na SO, o que pode ser útil (ainda não o li completamente).