Bash: ./name: Неможливо виконати бінарний файл


37

Я не зміг виконати компільований кодом fortran в ubuntu 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 

6
Будь ласка, введіть file filenameта повідомте про результати.
січня

ім'я файлу um.exe, а результат - bash: ./um не може виконати бінарний файл
user87654

2
Це не схоже на рідну програму Linux. Спробуйте вживати вино.
Лекенштейн

цей виконуваний файл компілюється за допомогою файлу make, який компілює набір кодів fortran. цей EXE зроблений у машині fedora
user87654

1
Введіть file um.exeабо file um(залежно від імені вашого бінарного файлу). Однак, ймовірно, створені бінарні файли є з тієї чи іншої причини бінарними файлами Windows. Також, якщо програма є загальнодоступною, ви можете опублікувати посилання на джерела. Або просто опублікуйте файл makefile тут.
січня

Відповіді:


38

Як видно з результатів, file umякі ви розмістили в коментарі, ваш двійковий файл - це 64-бітний двійковий код.

32-бітні системи не можуть запускати 64-бітні бінарні файли, вона працює лише навпаки.


3
Це найпоширеніша причина, з якою я бачив цю проблему, і використання fileцього засобу виявить це досить швидко.
mikebabcock

Тож рішення для цього немає?
JohnMerlino

@JohnMerlino Або надайте Апаратним засобам правильний набір інструкцій та ОС, яка його дозволяє (Апаратне забезпечення AMD64 та ОС для програм AMD64). або імітувати / імітувати / віртуалізувати (Virtual Box / JVM / ...) або отримати версію для набору інструкцій. Не можна запускати Програмне забезпечення для іншої Інструкції, встановленої в якості нативних програм.
12431234123412341234123

3

Спробуйте зробити файл виконуваним

chmod +x um.exe

Потім спробуйте запустити його

./um.exe

Але якщо це файл EXE, зібраний для Windows, вам, ймовірно, потрібно встановити Wine.


3

Іншим рішенням для людей, які мають цю проблему, крім частини про незрівняні біти, є те, що працює файл без команди "bash".

Просто скористайтеся, chmod +x 'path to the file'а потім запустіть 'the path to the file'у терміналі. Саме так я вирішив свою проблему.


0

Ще одне можливе джерело цієї помилки: спроба запуску бінарного файлу Linux на Mac, або навпаки.

Наприклад, намагаючись запустити trueбінарне з мого Mac на вікні Ubuntu, на який я SCPed:

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

Якщо ви завантажили двійковий файл і його виконання не вдається з цією помилкою, перевірте, чи завантажили ви версію для неправильної ОС.


0

Для мене, копіювання двійкового файлу в Програми на моєму 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

Для Googlers:

  • 32-розрядна чи 64-розрядна? Перевіртеfile yourbinary
  • Дозвіл на виконання? Зробітьchmod +x yourbinary
  • Шлях правильний? Зробіть./yourbinary
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.