Попытка запустить кросс-скомпилированный исполняемый файл на целевом устройстве завершается неудачно с: Нет такого файла или каталога

Я попал в не очень солнечный мир кросс-компиляции.

Я пытаюсь скомпилировать простое приложение hello world для моего BeagleBone Black (на котором работает процессор TI Cortex-A8).

Прежде всего, я скомпилировал и успешно запустил приложение hello world на x86 сgcc

Затем я изменил настройки компиляции следующим образом:

arm-linux-gnueabi-gcc -c -O0 -g3 -Wall main.c -o bin/obj/main.o
arm-linux-gnueabi-gcc bin/obj/main.o -o bin/hello_world

Я передал файл через SCP на BeagleBone и установил права на выполнение с помощьюchmod +x hello_world

После запуска (./hello_world), мой единственный ответ:

-bash: ./hello_world: No such file or directory

Выход изfile совпадает с/sbin/init как и следовало ожидать:

$ file hello_world
hello_world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x24b659b7a41fe043a6f4649d4ebfb5e692ebf0c7, not stripped
$ file /sbin/init
/sbin/init: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0xd21f6957ec031a27d567b3d5e6aa14b9e0c30c37, stripped

Результатldd является:

$ ldd hello_world
    not a dynamic executable

Я попытался добавить подходящую платформу и тип процессора, изменив компиляцию на:

arm-linux-gnueabi-gcc -c -O0 -g3 -Wall -march=armv7-a -mtune=cortex-a8  main.c -o bin/obj/main.o
arm-linux-gnueabi-gcc bin/obj/main.o -o bin/hello_world

Это первоначально начало давать мне новую ошибку:Text file busy, но с тех пор я не смог вернуть эту ошибку снова, поскольку она теперь возвращаетNo such file or directory, Я предполагаю, что эта конкретная попытка была просто неудачной передачей или чем-то еще.

Ответы на вопрос(0)

Ваш ответ на вопрос