cygwin - impossible d'exécuter un fichier binaire
Je suis en train de lancer ces deux .les fichiers de données à partir de mon code c++ pour ma mission. J'ai été fournis avec tous les fichiers, et sont destinées uniquement à mettre en œuvre certaines fonctions du programme (tout devrait être en mesure de compiler l'exécution de la commande make).
J'ai utilisé pour exécuter un MAC et juste de commencer à l'aide de windows (win 7), car le travail m'a donné un ordinateur portable gratuit. De toute façon...j'ai installé cygwin, a ajouté le gcc-c++ compilateur, gdb et faire des paquets à mon cygwin. Mais lorsque je lance la commande ./file ./data
il est livré avec:
bash: ./file: cannot execute binary file
est-il un paquet ou quelque chose que je suis supposer pour l'installer? Veuillez noter, que ./de données est le dossier qui contient mes deux .les fichiers de données, file1.data
et file2.data
compilé par"
g++ -Wall -Werror -02 -c file.cpp
g++ -Wall -Werror -02 -c file-test.cpp
g++ -Wall -Werror -02 -o file file.o file-test.o
chmod +x ./file
premier. Je venais tout juste d'installer Ubuntu ou de quelque chose et ne vous développement. Cygwin n'est pas parfait, et vous rencontrerez beaucoup de questions rapidement.Pas besoin d'installer Ubuntu, vous pouvez simplement exécuter une machine virtuelle.
./assume que le fichier de fichier dans votre répertoire de travail courant ... confirmer si c'est le cas.
j'ai essayé de
chmod +x ./file ./data
et elle vient avec notantoui, c'est dans le même répertoire, j'ai couru
make
et ensuite compilées à l'objet qu'il m'a donné ce qui a été file
OriginalL'auteur FHr | 2011-08-07
Vous devez vous connecter pour publier un commentaire.
Commencer par l'aide de la
file
de commande pour voir quel type de fichier binaire vous avez:Si elle n'est pas un exécutable, qui est un problème. Si c'est un exécutable ELF, alors il est probablement prévu pour fonctionner sur Linux, pas sur Windows. Par exemple comparer le résultat avec cette commande:
qui devrait vous dire:
/bin/bash: PE32 exécutable (console) Intel 80386 (dépouillé externes APB), pour MS Windows
Maintenant, essayez cette commande:
Qui dit la chose suivante:
/cygdrive/c/windows/write.exe: PE32+ exécutable (GUI) x86-64, pour MS Windows
J'ai couru ce sur une version 64 bits de Windows 7 l'installation, qui est pourquoi il est dit x86-64. Même si c'est un Windows GUI application totalement sans rapport avec cygwin, je peux encore l'exécuter par la commande:
Vous avez vraiment fait de ne pas expliquer comment vous avez obtenu ce fichier binaire nommé
./file
. Est-il possible qu'il est un objet de fichier à partir de la compilation que vous n'avez pas encore lié à un fichier exécutable? Si vous avez un fichier Makefile, pourquoi ne pas les afficher son contenu?Êtes-vous sûr que c'était -02 et non -O2. Si oui, changez la lettre O et essayez de nouveau.
OriginalL'auteur Michael Dillon