Vorrei compilare in modo incrociato i linguaggi della famiglia C (C, C ++, Objective-C e Objective-C ++) sul Raspberry Pi utilizzando Clang e LLVM su un computer di build con un'architettura diversa. Come posso farlo?
Vorrei compilare in modo incrociato i linguaggi della famiglia C (C, C ++, Objective-C e Objective-C ++) sul Raspberry Pi utilizzando Clang e LLVM su un computer di build con un'architettura diversa. Come posso farlo?
Risposte:
Ho appena completato il mio articolo, Cross compilation per Raspberry di Sierra , su questa cosa. Sotto Mac OS Sierra però. Ma per clang importa un po '.
In questo articolo ho condiviso l'esperienza (che mi è costata alcuni giorni di sofferenza). Spero che sia utile. In breve, tutto ciò che devi fare è specificare i rootfs e il triplo target:
path/to/clang --target=arm-linux-gnueabihf --sysroot=/some/path/arm-linux-gnueabihf/sysroot my-happy-program.c -fuse-ld=lld
Ho aggiunto l' -fuse-ld=lld
opzione, perché altrimenti clang proverà a cercare binutils legacy.
Ho seguito questo articolo e sembra funzionare bene per programmi banali (console / string / roba matematica, non molti flag di ottimizzazione). Ho usato la versione 1.19 di crosstool-ng su un laptop x86-64 con ZenWalk 7.0
Sembra che ci sia anche questo post su SO, che potrebbe essere utile (non l'ho ancora letto completamente).