Bash: ./filename: Tidak dapat menjalankan file biner

37

Saya tidak bisa menjalankan kode kompilasi fortran di ubuntu 11.10 32 bit.

Pesan kesalahan adalah

bash: ./filename : Cannot execute binary file.

Saya telah menginstal perpustakaan gcc dan gfortran juga.

Adakah yang bisa membantu?

$ 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 
pengguna87654
sumber
6
Harap ketikkan file filenamedan laporkan hasil.
Januari
nama file adalah um.exe dan hasilnya adalah bash: ./um tidak dapat mengeksekusi file biner
user87654
2
Itu tidak terlihat seperti program Linux asli. Coba gunakan anggur.
Lekensteyn
executable ini dikompilasi menggunakan file make yang mengkompilasi satu set kode fortran. exe ini dibuat di mesin fedora
user87654
1
Silakan ketik file um.exeatau file um(yang mana adalah nama file biner Anda). Namun, kemungkinan binari yang dihasilkan adalah untuk satu alasan atau binari Windows lainnya. Selain itu, jika program bersifat publik, Anda dapat memposting tautan ke sumber. Atau cukup kirim file makefile di sini.
Januari

Jawaban:

38

Seperti yang Anda lihat dari output file umyang Anda posting di komentar, biner Anda adalah biner 64-bit.

Sistem 32 bit tidak dapat menjalankan binari 64 bit, ia hanya bekerja sebaliknya.

elmicha
sumber
3
Ini adalah alasan paling umum yang saya lihat untuk masalah ini, menggunakan fileakan mengidentifikasi ini dengan cukup cepat.
mikebabcock
Jadi tidak ada solusi untuk ini?
JohnMerlino
@JohnMerlino Baik menyediakan Perangkat Keras dengan set instruksi yang benar dan OS yang memungkinkannya (Perangkat Keras AMD64 dan OS untuk Program AMD64). atau mensimulasikan / meniru / memvirtualkannya (Virtual Box / JVM / ...) atau mendapatkan versi untuk set instruksi Anda. Anda tidak dapat menjalankan Perangkat Lunak untuk Instruksi lain yang ditetapkan sebagai Program asli.
12431234123412341234123
3

Cobalah membuat file tersebut dapat dieksekusi

chmod +x um.exe

Kemudian coba jalankan

./um.exe

Tetapi jika ini adalah file exe yang dikompilasi untuk Windows, Anda mungkin perlu menginstal Wine.

carestad
sumber
3

Solusi lain untuk orang-orang yang mengalami masalah ini kecuali bagian tentang bit yang tidak cocok adalah menjalankan file tanpa perintah "bash".

Cukup gunakan chmod +x 'path to the file'dan jalankan 'the path to the file'di terminal. Inilah cara saya memecahkan masalah saya.

Onurhan
sumber
0

Sumber lain yang mungkin dari kesalahan ini: mencoba menjalankan biner Linux yang dapat dieksekusi pada Mac, atau sebaliknya.

Sebagai contoh, mencoba menjalankan truebiner dari Mac saya di kotak Ubuntu yang saya SCPkan ke:

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

Jika Anda telah mengunduh biner dan menjalankannya gagal dengan kesalahan ini, periksa apakah Anda telah mengunduh versi untuk OS yang salah.

Mark Amery
sumber
0

Bagi saya, menyalin biner ke dalam Aplikasi di Mac saya kemudian ke Path saya mengacaukannya di Mac saya. Saya cukup yakin folder Aplikasi mengubah biner menjadi Alias, bukan biner yang sebenarnya.

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

Saya membuka ritsleting biner dari Unduhan saya lagi dan hanya mvmengeditnya ke Path saya dan itu bekerja dengan baik.

mike$ file /usr/local/bin/terraform
/usr/local/bin/terraform: Mach-O 64-bit executable x86_64
Michael Davidson
sumber
0

Untuk Karyawan Google:

  • 32-bit atau 64-bit? Periksa denganfile yourbinary
  • Izin untuk dieksekusi? Melakukanchmod +x yourbinary
  • Jalan yang benar? Melakukan./yourbinary
Dai
sumber