Запуск exe на ubuntu

Запуск exe на ubuntu

Я предполагаю, что это 32-битная компиляция на 64-битной системе. Я перекрестно скомпилировал небольшой файл c в двоичный файл, используя опцию -m32 в gcc. Это также потребовало нескольких дополнительных пакетов. Результат a.out выглядит следующим образом.

% file a.out a.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=be02470c8337b96e7deaaff323bc53865991c3ab, not stripped 

Сравните это с внутренней бинарной системой

% file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=a0823e17cafbe5b2296346216445566840fdfd88, stripped 

Запуск a.out показывает мне это.

% ./a.out zsh: no such file or directory: ./a.out 

Конкретное сообщение «Команда не найдена» — это что-то, я думаю, bash печатает. Я сам использую zsh.

Чтобы это сработало, вы можете установить пакеты multilib. Я не сузил его до точного пакета, но установка gcc-multilib на Debian тянет все, что вам нужно. После установки этого, вот что я получаю.

% ./a.out 3.140523 

(программа должна оценивать значение PI).

Примечание. Мне действительно нужно было установить gcc-multilib только для компиляции файла. Затем я удалил пакеты, чтобы имитировать 64-битную систему, у которой нет 32-битных библиотек времени выполнения, которые нужны этой вещи.



Источник: qaru.site


Добавить комментарий