Ошибка формата exec при выполнении файла во встроенном устройстве из telnet

У меня есть встроенное устройство, которое состоит из 32-разрядного процессора ARM-7 Winbond и ОС uClinux. У меня Windows 7 64-битная машина. Я установил Virtual Box для Ubuntu для компиляции программы, а также для загрузки ее через FTP-сервер. файл во встроенном устройстве выполняется с сервера telnet. Устройство имеет собственный файл vdi, но не может открыть образ в виртуальной коробке, поэтому я устанавливаю Ubuntu в Virtual Box.

Проблемы:

  1. Когда я компилирую программу и загружаю в устройство через ftp, при выполнении файла из telnet он не запускает программу и показывает "Ошибка формата Exec". Таким образом, я отладил исполняемый файл, он показывает "обнаружен разрыв стека". Как это решить?

  2. Когда я копирую пример кода из Windows в Ubuntu с сервера на виртуальной машине и загружаю программу в устройство через ftp, она не выполняется. И то же самое, что я сделал с Windows 7, я загрузил пример кода в устройство через Windows FTP, программа выполняется. Почему это происходит?

1 ответ

Вы не можете запустить программу, созданную для другой архитектуры. Ваше приложение разработано для 64-разрядной архитектуры x86, и вы пытаетесь запустить его на 32-разрядном ARM. Необходимо выполнить кросс-компиляцию программы для данной архитектуры.

Здесь вы можете прочитать о кросс-компиляции:

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