Bash: ./filename: Không thể thực thi tệp nhị phân


37

Tôi không thể thực thi mã được biên dịch fortran trong Ubuntu 11.10 32 bit.

Thông báo lỗi là

bash: ./filename : Cannot execute binary file.

Tôi cũng đã cài đặt thư viện gcc và gfortran.

Bất cứ ai có thể giúp đỡ?

$ 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
Vui lòng nhập file filenamevà báo cáo kết quả.
Ngày

tên tệp là um.exe và kết quả là bash: ./um không thể thực thi tệp nhị phân
user87654

2
Điều đó không giống như một chương trình Linux gốc. Hãy thử sử dụng rượu vang.
Lekensteyn

thực thi này được biên dịch bằng cách sử dụng một tập tin thực hiện biên dịch một tập hợp các mã fortran. exe này được tạo ra trong máy fedora
user87654

1
Vui lòng nhập file um.exehoặc file um(bất cứ tên nào là tên tệp nhị phân của bạn). Tuy nhiên, có thể các nhị phân được tạo là vì một lý do hoặc các nhị phân Windows khác. Ngoài ra, nếu chương trình là công khai, bạn có thể đăng liên kết đến các nguồn. Hoặc chỉ cần đăng các makefile ở đây.
Ngày

Câu trả lời:


38

Như bạn có thể thấy từ đầu ra file ummà bạn đã đăng trong một bình luận, nhị phân của bạn là nhị phân 64 bit.

Hệ thống 32 bit không thể chạy nhị phân 64 bit, nó chỉ hoạt động theo cách khác.


3
Đây là lý do phổ biến nhất tôi từng thấy cho vấn đề này, sử dụng filesẽ xác định điều này khá nhanh.
mikebabcock

Vì vậy, không có giải pháp cho điều này?
JohnMerlino

@JohnMerlino Hoặc cung cấp cho Phần cứng bộ hướng dẫn chính xác và HĐH cho phép nó (Phần cứng và HĐH AMD64 cho Chương trình AMD64). hoặc mô phỏng / mô phỏng / ảo hóa nó (Hộp ảo / JVM / ...) hoặc nhận phiên bản cho tập lệnh của bạn. Bạn không thể chạy Phần mềm cho các Tập lệnh khác dưới dạng Chương trình gốc.
12431234123412341234123

3

Hãy thử làm cho tập tin thực thi

chmod +x um.exe

Sau đó thử chạy nó

./um.exe

Nhưng nếu đây là tệp exe được biên dịch cho Windows, có lẽ bạn cần phải cài đặt Wine.


3

Một giải pháp khác cho những người đang gặp vấn đề này ngoại trừ phần về các bit chưa từng có là chạy tệp mà không có lệnh "bash".

Chỉ cần sử dụng chmod +x 'path to the file'và sau đó chạy 'the path to the file'trong thiết bị đầu cuối. Đây là cách tôi giải quyết vấn đề của mình.


0

Một nguồn có thể khác của lỗi này: cố gắng chạy tệp nhị phân Linux trên máy Mac hoặc ngược lại.

Chẳng hạn, cố gắng chạy truenhị phân từ máy Mac của tôi trên hộp Ubuntu mà tôi đã SCPed nó để:

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

Nếu bạn đã tải xuống tệp nhị phân và thực hiện lỗi không thành công với lỗi này, hãy kiểm tra xem bạn đã tải xuống phiên bản cho hệ điều hành sai chưa.


0

Đối với tôi, việc sao chép nhị phân vào Ứng dụng trên máy Mac của tôi sau đó vào Đường dẫn của tôi đã làm hỏng nó trên máy Mac của tôi. Tôi khá chắc chắn rằng thư mục Ứng dụng đã biến nhị phân thành Bí danh thay vì nhị phân thực tế.

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

Tôi đã giải nén tệp nhị phân khỏi Tải xuống của mình một lần nữa và chỉ chỉnh mvnó thành Đường dẫn của tôi và nó hoạt động tốt.

mike$ file /usr/local/bin/terraform
/usr/local/bin/terraform: Mach-O 64-bit executable x86_64
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.