Я не мог выполнить скомпилированный код Фортрана в человечности 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
Как видно из вывода файла um
, который вы разместили в комментарии, ваш двоичный файл является 64-битным.
32-битные системы не могут запускать 64-битные двоичные файлы, это работает только в обратном направлении.
Попробуйте сделать файл исполняемым
chmod +x um.exe
Затем попробуйте запустить его
./um.exe
Но если это исполняемый файл, скомпилированный для Windows, вам, вероятно, нужно установить Wine.
Другой возможный источник этой ошибки: попытка запустить двоичный исполняемый файл Linux на Mac или наоборот.
Например, попытка запустить двоичный файл true
с моего Mac на Ubuntu ящик, в который я его отправил:
$ ./mactrue
-bash: ./mactrue: cannot execute binary file: Exec format error
Если вы загрузили двоичный файл и его выполнение не удается из-за этой ошибки, проверьте, не скачали ли вы версию для не той ОС.
Еще одно решение для людей, которые сталкиваются с этой проблемой, за исключением того, что касается несогласованных битов, - это запуск файла без команды "bash" ".
Просто используйте chmod + x 'путь к файлу'
, а затем запустите 'путь к файлу'
в терминале. Вот как я решил свою проблему.
Для меня копирование двоичного файла в приложения на моем 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
Что касается меня, то я работал на виртуальной машине Vagrant (VirtualBox), но отключил портативный жесткий диск, на котором хранился образ виртуальной машины - я подключил жесткий диск и перезагрузил виртуальную машину и мой двоичный файл снова стал исполняемым.
Я полагаю, что большая часть виртуальной машины была загружена в память, поскольку я все еще мог использовать ее и выполнять системные двоичные файлы.
Для гуглеров:
файл yourbinary
chmod + x yourbinary
./ yourbinary