ne peut pas exécuter un fichier binaire
J'ai un binaire exécutable qui est une partie d'un programme d'études package logiciel que j'ai téléchargé. Je n'arrive pas à le faire fonctionner, et je n'ai pas accès au code source. J'ai essayé les choses suivantes. Toutes les pensées?
Merci beaucoup.
$ chmod +x random_cell
$ ./random_cell
-bash: ./random_cell: cannot execute binary file
$ file random_cell
random_cell: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, not stripped
$ ldd random_cell
random_cell: is not an object file
$ uname -m
x86_64
OriginalL'auteur user1473883 | 2013-08-02
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré le même problème et c'est la réponse que je suis venu avec
Bien... qui l'explique!
Solutions possibles: vérifiez si votre CPU prend en charge 64 bits de Linux:
(Google exactement le nom du PROCESSEUR afin de connaître ses spécifications)
Puis la mise à niveau vers une version 64 bits de Linux (si vous pouvez) - Télécharger Ubuntu Desktop
Une Alternative à l'exécution de code 64 bits sur 32 bits de Linux est d'utiliser un vrai émulateur de processeur comme qemu/bochs - Bochs - OSDev Wiki - avec une version 64 bits de Linux image (ou une machine virtuelle comme xen si votre PROCESSEUR supporte).
Une autre est de demander à votre fournisseur de logiciels de recompiler pour 32-bit.
(Pour moi, je vais recompiler à partir de la source.)
OriginalL'auteur Fenn
Noter la sortie de votre
file
commande:C'est-à dire le fichier exécutable que vous essayez d'exécuter est compilé pour la x86-64 architecture. Si vous utilisez un système d'exploitation 32 bits qui ne fonctionne pas, sauf si vous le recompiler pour 32-bit.
Puisque vous n'avez pas le code source, je pense que le plus simple serait d'utiliser une version 64 bits du système Linux pour l'exécuter.
Utilisez cette commande:
uname -a
et de poster ici sa sortieOh.. attendre. Maintenant, je vois que vous avez utilisé
uname -m
et il est retourné il est en effet un système 64 bits: x86_64. Êtes-vous sûr de définir le bit d'exécution sur random_cell? Il a été détenu par votre utilisateur?Je suis raisonnablement certain que j'ai mis le bit d'exécution - $ ls -l random_cell -rwxr-xr-x@ 1 hippo personnel 1048235 24 Juil 2012 random_cell
Hmm. Avez-vous essayé d'exécution à partir d'un autre environnement? Comme
sh random_cell
?OriginalL'auteur Claudio