Nie mogłem wykonać skompilowanego kodu fortran w 32-bitowym Ubuntu 11.10.
Komunikat o błędzie to
bash: ./filename : Cannot execute binary file.
Zainstalowałem również biblioteki gcc i gfortran.
Czy ktoś może pomóc?
$ 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
files
executable
binary
fortran
użytkownik87654
źródło
źródło
file filename
i zgłoś wyniki.file um.exe
lubfile um
(w zależności od nazwy pliku binarnego). Jednak prawdopodobnie wygenerowane pliki binarne są z jednego powodu lub innych plików binarnych systemu Windows. Ponadto, jeśli program jest publiczny, możesz opublikować link do źródeł. Lub po prostu opublikuj plik makefile tutaj.Odpowiedzi:
Jak widać z danych wyjściowych
file um
opublikowanych w komentarzu, Twój plik binarny jest plikiem 64-bitowym.Systemy 32-bitowe nie mogą uruchamiać 64-bitowych plików binarnych, działa tylko na odwrót.
źródło
file
szybko zidentyfikuje.Spróbuj zrobić plik wykonywalny
Następnie spróbuj go uruchomić
Ale jeśli jest to plik exe skompilowany dla systemu Windows, prawdopodobnie musisz zainstalować Wine.
źródło
Innym rozwiązaniem dla osób, które mają ten problem, z wyjątkiem części o niedopasowanych bitach, jest uruchomienie pliku bez polecenia „bash”.
Wystarczy użyć,
chmod +x 'path to the file'
a następnie uruchomić'the path to the file'
w terminalu. W ten sposób rozwiązałem mój problem.źródło
Innym możliwym źródłem tego błędu: próba uruchomienia binarnego pliku wykonywalnego Linuksa na komputerze Mac lub odwrotnie.
Na przykład próbuję uruchomić
true
plik binarny z mojego komputera Mac na komputerze Ubuntu, do którego SCPedowałem go:Jeśli pobrałeś plik binarny i wykonanie go nie powiedzie się z powodu tego błędu, sprawdź, czy pobrałeś wersję dla niewłaściwego systemu operacyjnego.
źródło
Dla mnie skopiowanie pliku binarnego do aplikacji na komputerze Mac, a następnie na ścieżkę, pomieszało go na komputerze Mac. Jestem prawie pewien, że folder Aplikacje zamienił plik binarny na Alias zamiast rzeczywistego pliku binarnego.
Ponownie rozpakowałem plik binarny z moich pobrań i po prostu wprowadziłem
mv
go na moją ścieżkę i działał dobrze.źródło