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

0

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

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

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

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

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

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

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
Теги:
arm
cross-compiling
pandaboard

2 ответа

0

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

0

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

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

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

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

  • 0
    О, спасибо, вы только что дали мне новую команду. :-) Но я не вижу большой разницы (я взял в качестве примера бинарный файл midnght) PandaBoard3: ~ $ file / usr / bin / mc / usr / bin / mc: ELF 32-битный общий объект LSB, ARM, EABI5 версия 1 (SYSV), динамически связанный (использует общие библиотеки), для GNU / Linux 2.6.32, BuildID [sha1] = 31c7410ced0a9b54f97a28e6cbabf97afd4ecee3, раздетый PandaBoard3: ~ $ file ./Pandaboard \ crosscompile ./Pandaboard кросс-компиляция, битный код LSB ELB: ARM, EABI5 версия 1 (SYSV), динамически связанная (использует разделяемые библиотеки), для GNU / Linux 2.6.16, не удалена
  • 0
    По крайней мере, версия заголовков ядра отличается, и я не знаю, показывает ли file аппаратный или программный код. У меня есть образ Debian, это armhf . Что ldd скажет ./Pandaboard crosscompile ? Если у вас нет ldd try: LD_TRACE_LOADED_OBJECTS=1 <executable>
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню