Jump to content

    

Кросс-компиляция под Raspberry Pi 3 B+

Всем привет!

Подскажите, пожалуйста, наиболее оптимальный тулчейн для кросс-компиляции Си/Си++ (компиляция на Linux Mint).

Что можете сказать, например, об этом генераторе?

Желательно, чтобы возни поменьше...

Edited by koluna

Share this post


Link to post
Share on other sites
7 minutes ago, koluna said:

Желательно, чтобы возни поменьше...

Возьмите готовую сборку Linaro.

Share this post


Link to post
Share on other sites

Спасибо.

Помогите, пожалуйста, соориентироваться, где прочитать, что "нужно конкретно это"?

 

Скачал, собрал хелловорлд, но при выполнении на Малинке получаю ошибку:

Quote

-bash: ./rapi: cannot execute binary file: Exec format error

В чем может быть дело?

Share this post


Link to post
Share on other sites

Выполните file rapi и file /bin/bash и сравните результат.

Share this post


Link to post
Share on other sites

Выполнил на Малине:

Quote

pi@raspberrypi:~ $ file rapi 
rapi: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=10d2c7734ab34890bfc9f7c12267ae396bc3fb4b, stripped

pi@raspberrypi:~ $ file /bin/bash
/bin/bash: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=3e5e2847bbc51da2ab313bc53d4bdcff0faf2462, stripped

Не тот тулчейн?

Share this post


Link to post
Share on other sites

Да, не тот тулчейн...

Подошло это: gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf, которое взял отсюда.

Вот бы еще в этих названиях разобраться. А то вгоняет в тоску...

 

Quote

pi@raspberrypi:~ $ file rapi 
rapi: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=e39baa945d675d8b975ae6f22e53112db9d053d9, stripped

 

Edited by koluna

Share this post


Link to post
Share on other sites

Пардон, был не в курсе, что RPi aarch64 не используют.

Share this post


Link to post
Share on other sites

Это всего лишь означает, что target linux у вас 32-битный. Для малины это норма, почему-то...

Share this post


Link to post
Share on other sites

Мне крышу сносят все эти аббревиатуры и их сочетания... Взять, к примеру aarch64 и gnueabihf.

Так, но ведь Малинка-то 64-битная?

Share this post


Link to post
Share on other sites

Третья (А54) да, а первые и вторые малины - 32 разрядные и в результате требование совместимости. Нормальная 64-разрядная среда, если не ошибаюсь, OpenSuse.

Share this post


Link to post
Share on other sites

А, т. е., один и тот же дистриб можно накатить на все три версии Малины и сделан 32-битным из соображений совместимости?

Share this post


Link to post
Share on other sites

Дык сходите в википедию, гляньте в сводную табличку - архитектура, число ядер, тактовые частоты - всё открыто.

Share this post


Link to post
Share on other sites

А будут ли соответствовать данные в Вики аббревиатурам в названиях тулчейнов?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this