web-dev-qa-db-fra.com

Echec du lancement de Eclipse C++ pour OS X - Fichier binaire introuvable

Je suis assez troublé car cela ne devrait pas me causer un tel mal de tête. J'ai téléchargé les plus récents plug-ins Eclipse Indigo et all CDT C++ pour MAC OS X 10.7.1 /

Après avoir redémarré après l’installation des plugins CDT ci-dessus, j’ai développé une simple application c ++ «hello world» et j’ai essayé de l’exécuter. Message d'erreur. J'ai lu plusieurs correctifs mais aucun n'a fonctionné. J'ai essayé d'ajouter l'indicateur -Arch i386 aux commandes de l'éditeur de liens et du compilateur, toujours pas de chance.

Quelqu'un at-il réussi à obtenir Eclipse C++ sous 10.7.1 ?????? Cela me souffle l'esprit. Je peux simplement écrire le même programme dans VIM et le compiler parfaitement via le terminal et l'exécuter parfaitement. Eclipse NE VEUT PAS JOUER A LONG.

Je serai profondément reconnaissant à tous ceux qui peuvent aider !!!!!

EDIT: sortie du compilateur

**** Build of configuration Debug for project HelloWorld ****
make all Building file: ../main.cpp
Invoking: GCC C++ Compiler g++ -I/Developer/SDKs/MacOSX10.6.sdk/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -Arch i386 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
Finished building: ../main.cpp
Building target: libHelloWorld
Invoking: MacOS X C++ Linker g++ -Arch i386 -dynamiclib -o "libHelloWorld" ./main.o
Finished building target: libHelloWorld
**** Build Finished ****
22
5k1zk17

Pour ceux d'entre vous qui débutent dans la programmation/Eclipse/IDE et qui rencontrent la même erreur, mais les solutions ci-dessus ne fonctionnent pas, j'ai résolu mon "Lancement échoué. Binaire introuvable." erreur en procédant comme suit: Assurez-vous simplement de construire votre projet ("Projet"> "Construire tout") avant de tenter d’exécuter ou de déboguer. Je pensais que IDE ferait le bâtiment quand je clique sur debug ou run, mais ce n'est pas le cas (évidemment, rétrospectivement). Leçon novice apprise. Une fois que vous avez créé, vous devriez voir un dossier "Binaries" et "Debug" dans le répertoire racine du projet.

J'utilisais OS X 10.7.3, le cas échéant, même si je suppose que l'erreur que j'ai commise est fondamentale et que toute distribution d'Eclipse donnerait la même erreur.

32
Nate

J'utilise Eclipse Juno avec CDT sur un Macbook 2007 exécutant Snow Leopard. J'ai les deux symptômes:

  1. Aucun dossier binaire dans l'Explorateur de projet et
  2. Le 'lancement a échoué. Erreur binaire introuvable.

J'ai passé des heures à chercher une réponse sur Google suffisamment longtemps pour vérifier que ces deux symptômes sont révélateurs d'un nombre quelconque de problèmes signalés depuis au moins une décennie sans solution adéquate. C’est là un problème, car après une décennie, il aurait dû y avoir suffisamment de données en entrée pour fournir une procédure de dépannage quelque part qui guide l’utilisateur étape par étape vers l’élimination de toutes les causes possibles.

Pendant des heures, j’ai lu au sujet d’une multitude de personnes, dont beaucoup ont résolu leur problème particulier mais semblent toutes avoir dû faire quelque chose de légèrement différent pour y parvenir.

Cela ne devrait pas être si difficile à résoudre. En particulier dans des cas tels que le mien [mais je ne suis pas le seul] lorsque la vue Console affiche une construction sans erreur, l'utilisateur peut copier le fichier binaire [qu'Eclipse dit bizarrement qu'il ne peut pas trouver] sur le bureau et l'exécuter sans aucun problème de la part du Finder ou d’une session de terminal bash.

Tout ceci semble indiquer plutôt avec insistance le manque d’indicateurs adéquats dans l’analyseur binaire Mach0 64 qui devrait être conçu pour nous dire exactement ce dont il a besoin et qu’il ne voit pas.

Certes, cela est exacerbé dans le cas de MacBooks comme le mien, qui exécutent un système d’exploitation 64 bits [Snow Leopard] sur un processeur 64 bits que le fabricant, malheureusement, a bloqué avec un noyau de démarrage 32 bits. Mais, soyez prévenu, j'ai déjà essayé le commutateur -Arch i386 g ++, ainsi que la liaison de g ++ à g ++ - 4.0 sans aucune modification des symptômes.

ADDENDUM AJOUTÉ 10/07/2012:

J'ajoute cette liste de contrôle dans l'espoir de clarifier une Voie pour de nombreux autres qui, sans aucun doute, poseront cette question dans les années à venir. This Way reflète ce que j’ai trouvé nécessaire lors de l’utilisation de Eclipse Juno avec un Mac sous Snow Leopard:

1) Allez dans Préférences-> C/C++ -> Assistant Nouveau projet CDT, et sous Chaînes d'outils préférées, assurez-vous que tous les types de projets exécutables sont définis sur MacOSX GCC.

2) Ceci est un gros. J'ai pu obtenir un dossier Binaries dans l'Explorateur de projets et donc pouvoir exécuter le projet après l'avoir construit en utilisant un nom de projet qui ne contient pas de points ['.']. C'est ce que j'ai appris d'une autre réponse ici, publiée quelques heures après mon précédent message. Cette exigence est facile à manquer, donc commune si vous connaissez bien Eclipse, mais uniquement avec d’autres langues, car des tutoriels pour d’autres plug-ins de langue [comme PyDev ou Java] vous obligent souvent à créer des projets avec des points dans le nom. Si vous avez développé cette habitude avec d'autres langages, interrompez-la lorsque vous utilisez CDT pour C/C++. Sachez cependant qu'il ne suffit pas de cliquer avec le bouton droit de la souris et de renommer un nom de projet existant, cette fois sans utiliser de points. La manière la plus simple consiste à supprimer votre ancien projet et à en créer un nouveau avec un nom sans points.

3) De nombreux sites Web vous conseillent de vous assurer d'utiliser le commutateur de compilation -Arch i386 ou de modifier les liens pour/usr/bin/gcc et/usr/bin/g ++ afin qu'ils pointent vers gcc-4.0 et g ++ - 4.0 au lieu de gcc-4.2 et g ++ - 4.2. J'ai créé un script bash pour faciliter les échanges et j'ai cherché à savoir si cela était nécessaire. Ce n'était pas, du moins pas avec mon Macbook. D'après ce que j'ai lu sur un site d'un développeur Mach-O, je soupçonne que la version actuelle de Mach-0 64 fonctionne dans les deux sens. Ce qui est une bonne transition pour ...

4) Dans les propriétés du projet, et non pas dans les préférences, allez à C/C++ Build-> Settings et sous Binary Parsers, assurez-vous que Mach-O 64 Parser est coché. Assurez-vous que ceci, et non l'analyseur Mach-O obsolète, est coché.

5) À ce stade, après avoir créé votre projet, plusieurs éléments doivent apparaître dans l'explorateur de projets:

6) Il devrait maintenant y avoir un dossier Binaries sous le dossier du projet.

7) Votre dossier exécutable devrait maintenant figurer dans ce dossier. Il devrait avoir [x86_64/le] à côté si, comme moi, votre Mac est effectivement 32 bits. Ce n’est pas le meilleur moment pour entrer dans le sujet confus de savoir si votre Mac est effectivement 32 bits ou 64 bits. Si vous ne le savez pas, et beaucoup de gens ne le savent pas parce qu'Apple rend les choses confuses, consultez la petite application qui peut être téléchargée à partir de http://www.ahatfullofsky.comuv.com/English/Programs/SMS/ SMS.html qui vous dira quelle est la vérité. C'est gratuit, mais le «prix» est que vous devez faire défiler les annonces en haut de la page pour refléter les dispositions politiques du programmeur.

31
istlota

sur mac:

  1. Assurez-vous que xcode est installé. Testez-le en écrivant "info g ++", vous devez voir les informations appropriées sur le compilateur. 

  2. Construisez votre projet.

  3. Allez dans le dossier de votre projet. Vous devriez voir un fichier exécutable dans Debug ou réaliser un dossier, selon les configurations de votre bâtiment. Si vous cliquez sur le fichier exécutable, vous devriez voir le résultat sur le terminal.

  4. De retour dans Ecliipse, depuis Exécuter/Exécuter les configurations ..., puis accédez au dossier contenant le fichier exécutable (celui que vous avez déjà trouvé). Vous pouvez également modifier les configurations de construction à votre guise dans cette fenêtre. Et rendre la construction automatique pour chaque exécution.

  5. Exécutez à nouveau, cela devrait fonctionner. 

Bonne chance ! 

10
telcom_un

J'ai eu le même problème, puis j'ai trouvé une solution sur ce site ..__ Laissez-moi vous expliquer brièvement

  1. Créez votre projet c ++,
  2. Regardez les propriétés du projet (I),
  3. Sélectionnez l’analyseur Mach-O sous les propriétés binaires,
  4. Ecrivez vos codes,
  5. N'oubliez pas de construire votre projet (B) avant de l'exécuter.
7
Fraukn

Vous devez modifier les paramètres de votre projet pour créer un fichier exécutable au lieu d’une bibliothèque dynamique:

Invoking: MacOS X C++ Linker g++ -Arch i386 -dynamiclib -o "libHelloWorld" ./main.o`

Accédez aux propriétés du projet -> Construction C/C++ -> Paramètres -> Artefact de construction, puis sélectionnez Exécutable dans la première liste déroulante.

4
Antonio Pérez

Si vous pouvez construire avec succès mais essayez quand même de l'exécuter en obtenant une erreur:

 enter image description here

La solution possible pourrait être d'ajouter une nouvelle configuration avec un chemin complet vers votre fichier de sortie binaire

(Run-> Run Configuration ...-> Main-> Application C++):

 enter image description here

2
0x8BADF00D

Si votre nom de projet contient un "." (point), le fichier binaire ne sera pas généré lors de la construction du projet . Supprimez tous les "." (points) du nom du projet et reconstruisez-le ou essayez de créer un nouveau projet.

Bonne codage!

2
Sushant Kr

J'avais le même problème. La réponse peut être difficile à trouver car le problème "binaire introuvable" a été abordé plusieurs fois auparavant, avec différentes causes et solutions (sélection de l'analyseur 64 bits, etc.).

Il s'est avéré que, dans mon cas, la solution était simple: vous devez effectuer une construction manuelle, une seule fois, pour chaque nouveau projet que vous créez. Après cela, fonctionne comme d'habitude.

Détails: utilisation d'une nouvelle installation Eclipse Indigo Service Release 1 sous Mac OS 10.7.2.

2
Harrison Brace

J'utilise Eclipse Oxygen et ce qui suit a résolu mon problème:

 Eclipse Oxygen

Cliquez avec le bouton droit sur votre projet et accédez à properties. Accédez à C/C++ Construction> Editeur de chaîne d’outil et sélectionnez MacOSX GCC dans la chaîne d’outils Current, puis Apply et Close.

Construisez votre projet avec CMD + B puis exécutez-le.

1
Maihan Nijat

J'ai résolu un problème similaire avec Eclipse en créant une "configuration de lancement". J'utilise la version Indigo d'Eclipse sur OSX Lion avec CDT (environnement de développement C/C++). J'ai trouvé la possibilité de créer une nouvelle configuration de lancement dans Projet-> Propriétés-> Paramètres Exécuter/Déboguer.

J'ai rencontré ce problème après avoir créé et construit un "Projet Autotools Hello World Ansi C" vide. Le processus de construction a créé un exécutable de travail sous le nom src/a.out. Je pouvais exécuter a.out avec succès à partir du terminal, mais Eclipse n’avait pas compris qu’il s’agissait d’un exécutable pour mon projet tant que je n’avais pas créé une configuration de lancement pointant dessus. Une fois que j’ai fait cela, j’ai pu exécuter a.out comme d’habitude en utilisant le bouton vert.

1
Kevin Olree

J'ai eu le même problème, même quand j'avais défini l'artefact sur exécutable. C'est parce que le paramètre lib partagée a été coché, ce qui entraîne la création d'un dylib même si vous avez spécifié un exécutable. 

0
Ryan Page

J'ai eu le même problème, mais le code était différent. Dans le fichier File.h, assurez-vous

virtual ~Destructor () {}; //Don't forget Curly braces {}

L'instruction ci-dessus montre le destructeur initialisé () et défini avec des accolades {}. Dans mon code, j'ai oublié de définir Destructor. J'espère que cela t'aides

0
Sdembla

J'avais le même problème, alors j'ai tripoté un peu de texte et découvert que si je cliquais sur le bouton "Profil" (icône de jeu verte avec une petite horloge en dessous), à droite du bouton "Exécuter", mon programme serait Exécuter la prochaine fois que je clique sur le bouton Exécuter.

En fait, je ne sais pas ce que cela a fait, mais cela m'a permis de lancer le code.

si quelqu'un sait pourquoi cela a aidé, et si c'est une solution réelle ou non n'hésitez pas à vous en remettre!

0
JoeCool

Je vais exécuter ceci en définissant le Type de générateur sur Constructeur interne sur l'ongletConstruction C/C++, dans la boîte de dialogue des propriétés du projet.

0
Gabby Moore

Quelle que soit l’approche à adopter pour résoudre ce problème sur votre espace de travail, ce problème semblait être devenu inhérent au projet que j’avais créé. Ne pas utiliser les arguments ni s’assurer que la version de gcc pour la liaison ne fonctionne pas. J'ai trouvé une solution intuitive. La voici: à l'erreur "... binaire indisponible ...". Procédez comme suit: (rappelez-vous que la procédure suivante s’applique une fois que vous avez choisi l’une des méthodes ci-dessus et que rien n’a résolu le problème.

1.) tout supprimer - le projet et les fichiers. 2.) Créer de nouveaux fichiers de projet et source 

0
Nirmal