Я хотел бы кросс-компилировать языки семейства C (C, C ++, Objective-C и Objective-C ++) для Raspberry Pi, используя Clang и LLVM на компьютере сборки другой архитектуры. Как я могу это сделать?
Я хотел бы кросс-компилировать языки семейства C (C, C ++, Objective-C и Objective-C ++) для Raspberry Pi, используя Clang и LLVM на компьютере сборки другой архитектуры. Как я могу это сделать?
Ответы:
Только что закончил мою статью, Кросс-компиляция для Raspberry из Sierra , именно об этом. Под Mac OS Sierra все же. Но для лязга это мало что значит.
В этой статье я поделился опытом (который стоил мне нескольких дней страданий). Надеюсь, это будет полезно. Короче говоря, все, что вам нужно сделать, это указать rootfs и target triple:
path/to/clang --target=arm-linux-gnueabihf --sysroot=/some/path/arm-linux-gnueabihf/sysroot my-happy-program.c -fuse-ld=lld
Я добавил -fuse-ld=lld
опцию, потому что в противном случае Clang будет пытаться найти устаревшие binutils.
Я следил за этой статьей, и она, кажется, отлично работает для тривиальных программ (консоль / строка / математика, не так много флагов оптимизации). Я использовал версию 1.19 crosstool-ng на ноутбуке x86-64 под управлением ZenWalk 7.0
Также кажется, что этот пост в SO, который может быть полезен (еще не полностью прочитал его).