Проблемы с настройкой Eclipse IDE для кросс-компиляции для PandaBoard-ES на основе Arm

Я пытаюсь настроить Eclipse IDE для кросс-компиляции кода C++, который должен работать на устройстве PandaBoard-ES на базе Arm.

На моей машине установлена ​​64-битная Fedora 20. Я следовал этим инструкциям, и после установки 32-битной версии glibc (glibc.i686) я смог собрать проект "hello world".

Моя проблема в том, что когда я копирую двоичный файл на устройство Pandaboard (работает под управлением Debian Jessie 3.16.0-armv7-x3), я не могу его выполнить. (Нет такого файла или каталога)

Может, кто-нибудь подскажет, что делать?

РЕДАКТИРОВАТЬ:

Вот вывод файла для бинарного полуночного коммандера (из репозитория) и кросс-скомпилированного бинарника

PandaBoard3:~$ file /usr/bin/mc
  /usr/bin/mc: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=31c7410ced0a9b54f97a28e6cbabf97afd4ecee3, stripped

PandaBoard3:~$ file ./Pandaboard\ crosscompile 
 ./Pandaboard crosscompile: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

2 ответа

Это слишком поздно и может быть довольно элементарно, но вы проверяли права доступа к файлу для двоичного файла, который пытались запустить? Запустите ls -alv и проверьте, разрешено ли для файла разрешение на выполнение для вашего пользователя.

Я думаю, что у вас несоответствие libc или ABI. Просто беги file на скомпилированном бинарном и на каком-то работающем бинарном на вас, Джесси. Вы должны увидеть разницу.

Fedora - не лучший дистрибутив для кросс-компиляции программного обеспечения для Debian. У вас есть две возможности:

  1. возьмите Debian Jessie x86 в качестве хоста разработки. Таким образом у вас будет одинаковый GCC, libc и т. Д. В обеих системах. Здесь вы можете прочитать, как установить набор инструментов из репозитория Emdebian. Также взгляните на xapt, Это позволит вам установить кросс-скомпилированные зависимости, такие как Qt, Boost и т. Д.

  2. возьмите какой-нибудь дистрибутив "с нуля", например, Buildroot или Yocto. Такой дистрибутив позаботится как о toolchain, так и о rootfs, поэтому он всегда совместим.

Другие вопросы по тегам