Ich möchte Sprachen der C-Familie (C, C ++, Objective-C und Objective-C ++) mit Clang und LLVM auf einem Build-Computer einer anderen Architektur auf den Raspberry Pi kompilieren. Wie kann ich das machen?
Ich möchte Sprachen der C-Familie (C, C ++, Objective-C und Objective-C ++) mit Clang und LLVM auf einem Build-Computer einer anderen Architektur auf den Raspberry Pi kompilieren. Wie kann ich das machen?
Antworten:
Ich habe gerade meinen Artikel " Cross Compilation for Raspberry from Sierra" über genau diese Sache fertiggestellt. Unter Mac OS Sierra allerdings. Aber für das Klirren ist es ein bisschen wichtig.
In diesem Artikel habe ich Erfahrungen ausgetauscht (die mich einige Tage Leiden gekostet haben). Hoffe es wird nützlich sein. Kurz gesagt, alles, was Sie tun müssen, ist rootfs und target Triple anzugeben:
path/to/clang --target=arm-linux-gnueabihf --sysroot=/some/path/arm-linux-gnueabihf/sysroot my-happy-program.c -fuse-ld=lld
Ich habe die -fuse-ld=lld
Option hinzugefügt , da sonst clang versucht, ältere Binutils nachzuschlagen.
Ich habe diesen Artikel befolgt und es scheint gut für triviale Programme zu funktionieren (Konsole / String / Mathe, nicht viele Optimierungsflags). Ich habe Version 1.19 von Crosstool-ng auf einem x86-64-Laptop mit ZenWalk 7.0 verwendet
Es scheint auch diesen Beitrag bei SO zu geben, was hilfreich sein könnte (habe ihn noch nicht vollständig durchgelesen).