Bash: ./filename: Impossible d'exécuter le fichier binaire


37

Je ne pouvais pas exécuter de code compilé fortran dans ubuntu 11.10 32 bits.

Le message d'erreur est

bash: ./filename : Cannot execute binary file.

J'ai également installé les bibliothèques gcc et gfortran.

Quelqu'un pourrait-il aider?

$ 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
Veuillez saisir file filenameet rapporter les résultats.
Janvier

nomfichier est um.exe et résultat est bash: ./um ne peut pas exécuter de fichier binaire
utilisateur87654

2
Cela ne ressemble pas à un programme Linux natif. Essayez d'utiliser du vin.
Lekensteyn

cet exécutable est compilé à l'aide d'un fichier make qui compile un ensemble de codes fortran. cette exe est faite dans la machine fedora
user87654

1
Veuillez taper file um.exeou file um(le nom de votre fichier binaire étant spécifié). Cependant, il est probable que les fichiers binaires générés le soient pour une raison ou pour d'autres binaires Windows. De plus, si le programme est public, vous pouvez poster le lien vers les sources. Ou postez simplement le fichier makefile ici.
Janvier

Réponses:


38

Comme vous pouvez le voir à la sortie de ce file umque vous avez posté dans un commentaire, votre binaire est un binaire de 64 bits.

Les systèmes 32 bits ne peuvent pas exécuter de fichiers binaires 64 bits, ils ne fonctionnent que dans l’inverse.


3
C’est la raison la plus courante que j’ai vue pour ce problème, l’utilisation filel’identifiant assez rapidement.
mikebabcock

Donc, il n'y a pas de solution à cela?
JohnMerlino

@JohnMerlino Soit le matériel fourni avec le jeu d'instructions correct et un système d'exploitation le permettant (matériel AMD64 et système d'exploitation pour les programmes AMD64). ou simulez / émulez / virtualisez-le (Virtual Box / JVM / ...) ou obtenez une version de votre jeu d'instructions. Vous ne pouvez pas exécuter de logiciel pour d'autres jeux d'instructions en tant que programmes natifs.
12431234123412341234123

3

Essayez de rendre le fichier exécutable

chmod +x um.exe

Ensuite, essayez de l'exécuter

./um.exe

Mais s'il s'agit d'un fichier exe compilé pour Windows, vous devrez probablement installer Wine.


3

Une autre solution pour les personnes rencontrant ce problème, à l'exception de la partie concernant les bits sans correspondance, consiste à exécuter le fichier sans la commande "bash".

Il suffit d’utiliser chmod +x 'path to the file'puis d’exécuter 'the path to the file'en mode terminal. C’est ainsi que j’ai résolu mon problème.


0

Une autre source possible de cette erreur: essayer d’exécuter un exécutable binaire Linux sur un Mac, ou inversement.

Par exemple, essayer d'exécuter le truebinaire à partir de mon Mac sur une boîte Ubuntu pour laquelle je l'ai envoyé:

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

Si vous avez téléchargé un fichier binaire et que son exécution échoue avec cette erreur, vérifiez si vous avez téléchargé la version pour le mauvais système d'exploitation.


0

Pour moi, copier le binaire dans des applications sur mon Mac puis dans mon chemin a tout gâché sur mon Mac. Je suis sûr que le dossier Applications a transformé le fichier binaire en un alias au lieu d'un fichier binaire réel.

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

J'ai décompressé le fichier binaire à partir de mes téléchargements et je l'ai simplement mvédité sur mon chemin d'accès, ce qui a bien fonctionné.

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

0

Pour les googleurs:

  • 32 bits ou 64 bits? Vérifier avecfile yourbinary
  • Permission d'exécuter? Fairechmod +x yourbinary
  • Chemin correct? Faire./yourbinary
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.