Bash:./имя файла: не Может выполнить двоичный файл

Я не мог выполнить скомпилированный код Фортрана в человечности 11.10 32 бита.

Сообщение об ошибке

bash: ./filename : Cannot execute binary file.

Я установил gcc и gfortran библиотеки также.

Кто-либо мог помочь?

$ file um
um: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped 
48
задан 4 March 2015 в 16:32

7 ответов

Как видно из вывода файла um, который вы разместили в комментарии, ваш двоичный файл является 64-битным.

32-битные системы не могут запускать 64-битные двоичные файлы, это работает только в обратном направлении.

45
ответ дан 23 November 2019 в 00:18

Попробуйте сделать файл исполняемым

chmod +x um.exe

Затем попробуйте запустить его

./um.exe

Но если это исполняемый файл, скомпилированный для Windows, вам, вероятно, нужно установить Wine.

4
ответ дан 23 November 2019 в 00:18

Другой возможный источник этой ошибки: попытка запустить двоичный исполняемый файл Linux на Mac или наоборот.

Например, попытка запустить двоичный файл true с моего Mac на Ubuntu ящик, в который я его отправил:

$ ./mactrue 
-bash: ./mactrue: cannot execute binary file: Exec format error

Если вы загрузили двоичный файл и его выполнение не удается из-за этой ошибки, проверьте, не скачали ли вы версию для не той ОС.

2
ответ дан 23 November 2019 в 00:18

Еще одно решение для людей, которые сталкиваются с этой проблемой, за исключением того, что касается несогласованных битов, - это запуск файла без команды "bash" ".

Просто используйте chmod + x 'путь к файлу' , а затем запустите 'путь к файлу' в терминале. Вот как я решил свою проблему.

5
ответ дан 23 November 2019 в 00:18

Для меня копирование двоичного файла в приложения на моем Mac, а затем в мой путь, испортило его на моем Mac. Я почти уверен, что папка Applications превратила двоичный файл в псевдоним, а не в фактический двоичный файл.

-bash: /usr/local/bin/terraform: cannot execute binary file
mike$ file /usr/local/bin/terraform 
/usr/local/bin/terraform: MacOS Alias file

Я снова разархивировал двоичный файл из моих загрузок и просто mv отредактировал его на моем пути, и он работал нормально.

mike$ file /usr/local/bin/terraform
/usr/local/bin/terraform: Mach-O 64-bit executable x86_64
0
ответ дан 23 November 2019 в 00:18

Что касается меня, то я работал на виртуальной машине Vagrant (VirtualBox), но отключил портативный жесткий диск, на котором хранился образ виртуальной машины - я подключил жесткий диск и перезагрузил виртуальную машину и мой двоичный файл снова стал исполняемым.

Я полагаю, что большая часть виртуальной машины была загружена в память, поскольку я все еще мог использовать ее и выполнять системные двоичные файлы.

0
ответ дан 5 January 2021 в 23:35

Для гуглеров:

  • 32-битный или 64-битный? Проверьте с помощью файл yourbinary
  • Разрешение на выполнение? Правильный ли путь chmod + x yourbinary
  • ? Сделайте ./ yourbinary
7
ответ дан 5 January 2021 в 23:35

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

Похожие вопросы: