Нет такого файла или каталога при запуске приложения на целевой linux arm

У меня есть комплект для разработки (Altera Cyclon V, Cortex A9), и я пытаюсь запустить на нем простое приложение. Я использую cygwin для кросс-компиляции своего кода для ARM Linux (используя набор инструментов soureforge для Linux).

Шаги:

  1. построить в cygwin: arm-linux-gcc dd.c -s -mcpu=cortex-a9 -s -o ddb
  2. скопируйте ddb в цель и chmod a+x
  3. его запуск дает мне «./ddb: нет такого файла или каталога». возможно, несоответствие между lib\tools, но я новичок в Linux (из QNX).

Цель работает:

   root@socfpga:~/altera# cat /proc/version 
   Linux version 3.9.0 (jdasilva@sj-interactive3) (gcc version 4.7.3 20121106 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2012.1
   1-20121123 - Linaro GCC 2012.11) ) #1 SMP Fri Sep 27 22:55:43 PDT 2013

Данные файла моего приложения:

 ddb: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared
 libs), for GNU/Linux 2.6.33, stripped

Данные файла образца hello_world, который работает на target:

 hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (use
 s shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=0x2e8fbebd0bdab5897c0c65fb6b
 563f3c34a16eb1, stripped

Я вижу, что используются разные DLL (2.6.31 и 2.6.33).

Как я могу это решить?


person user3087632    schedule 10.12.2013    source источник
comment
хорошо, исправил это с помощью Linaro GCC (который использовался для создания цели)   -  person user3087632    schedule 10.12.2013


Ответы (2)


У меня была эта проблема раньше, когда я пытался скопировать двоичные файлы ARM на устройство Android ARM.

Вы решили это, но в любом случае, это то, что я узнал. Проблема была в разделяемых библиотеках. Он пытается загрузить библиотеку, которая не существует в целевой системе. Ошибка «файл не найден» вводит в заблуждение.

Связанный вопрос и ответы:

Такого файла или каталога нет, но он существует

person johannestaas    schedule 11.12.2013

может быть 64‹> 32-битная проблема. См. это.

person kuttifunk    schedule 12.01.2016