web-dev-qa-db-fra.com

Le projet Eclipse CDT est construit mais "Le lancement a échoué. Binaire introuvable"

Windows 7, CDT Eclipse, Juno Service Release 2, Compilateur croisé.

Les projets compilent les exécutables générés, mais Eclipse ne les voit pas. donc 'Run' échoue. Les exécutables sont placés dans le répertoire de débogage. Double-cliquez sur la commande ou appelez Invite sur un exécutable compilé fonctionne sans problème.

enter image description here

Comment puis-je résoudre ça?

26
Nenad Bulatovic

Je pense avoir trouvé la solution: un analyseur binaire approprié doit être sélectionné pour qu'Eclipse puisse reconnaître l'exécutable:

Sélectionnez le projet, puis cliquez avec le bouton droit. Projet-> Propriétés-> Construction C/C++-> Paramètres-> Analyseurs binaires, analyseur Windows PE.

C'est à dire. Si le compilateur Cygwin est utilisé, l'analyseur Cygwin doit être utilisé.

Cela a fonctionné pour moi au moins pour Cross-compiler (Windows 7 et Ubuntu 12.04). Sous Linux, j'utilise Elf parser.

Si quelqu'un a la meilleure solution, s'il vous plaît aviser.

22
Nenad Bulatovic

Просто выберите проект и нажмитеCTRL+B,.

40

Cela m'est arrivé et j'ai trouvé une solution, voyez si cela fonctionne pour vous:

Une fois que vous avez construit votre projet avec l’icône marteau:

  1. sélectionnez "Exécuter".
  2. Exécuter les configurations.
  3. Choisissez "Application C++".
  4. Cliquez sur l'icône "Nouvelle configuration de lancement" en haut à gauche de la fenêtre ouverte.
  5. Sélectionnez "Parcourir" sous l'application C/C++.
  6. Accédez au dossier où vous avez créé votre projet initialement.
  7. Entrez le dossier de débogage.
  8. Cliquez sur le fichier binaire portant le même nom que le projet. 
  9. Sélectionnez "OK". 
  10. Cliquez sur "Appliquer" pour confirmer le lien que vous venez de définir. 
  11. Fermez cette fenêtre.

Ensuite, vous devriez pouvoir exécuter le projet autant que vous le souhaitez.

J'espère que cela fonctionne pour vous.

39
nathan ael

Si vous rencontrez également un problème similaire, comme Nenad Bulatovic l’a mentionné plus haut, vous devez modifier les analyseurs binaires .

Presse Command + I pour ouvrir des propriétés (ou un clic droit sur votre projet et sélectionnez une propriété)

Assurez-vous de sélectionner Analyseur Mach-O 64 .

enter image description here

5
leoflower

dans mon cas, c'est la solution pour y remédier. Lorsque vous créez un projet, sélectionnez MinGW GCC dans le panneau Chaînes d'outils.

 enter image description here

Une fois le projet créé, sélectionnez le fichier de projet, appuyez sur ctrl + b pour construire le projet. Puis cliquez sur Exécuter et la sortie devrait être imprimée sur la console.

3
Giorgos K

d'abord, je devais cliquer sur un petit bouton en forme de flèche qui ouvre un menu contenant "Exécuter les configurations",  enter image description here

ensuite, dans la fenêtre suivante, je devais cliquer sur "Application C/C++", puis sur un bouton sans texte avec un signe + vert  enter image description here

alors je devais appuyer sur les boutons "Appliquer" et "Exécuter"  enter image description here

eclipse pourrait alors exécuter/déboguer le programme. :)

2
hanshenrik

Pour ce que cela vaut, j’ai eu ce problème - et la cause en était DWARF 3 non valide dans le fichier binaire du projet sélectionné (qui ne contenait aucun fichier binaire exécutable).

Voici comment cela fonctionne: J'ai eu deux projets Main et Library. Main dépendait du projet Library et le premier avait un exécutable, tandis que le dernier venait de produire une bibliothèque statique (avec laquelle Main était lié).

Mon option d'exécution a été définie sur "Exécuter/Déboguer -> Lancer" et le paramètre "Lancer en cours, sinon dernier" comme suit (voir en bas à droite):

 Run/Debug settings

Si j'avais sélectionné le projet Main, tout fonctionnerait correctement: le projet principal serait lancé. Si j'avais le projet Library sélectionné1 cela échouerait avec le message d'erreur donné par l'OP. La raison semblait être la suivante: puisque le projet Library avait été sélectionné, le scanner PE analysait les fichiers binaires du projet pour savoir s’il était possible de les lancer, et parce que l’analyse échouait en raison de ce bogue le message d'erreur apparaissait. avant de pouvoir "Lancer l’application lancée précédemment".

Je pourrais le contourner en:

  1. S'assurer que le projet que je voulais lancer a été sélectionné ou ...
  2. Changer les compilateurs en un compilant les informations DWARF qu'Eclipse pourrait analyser sans échec, ou ...
  3. Si vous sélectionnez "Toujours lancer l’application lancée précédemment" dans les paramètres Exécuter/Déboguer, il se peut que ce ne soit pas votre mode de fonctionnement préféré.

1 Normalement, je ne choisirais pas directement le projet, bien sûr, il serait indirectement sélectionné car je travaillais dans l’un des fichiers source qu’il contenait.

1
BeeOnRope

Assurez-vous que le nom du dossier ne contient pas l'extension .c. Lorsque j'ai supprimé l'extension .c dans mon nom de dossier, cela a fonctionné automatiquement.

0
shma

appuyez sur ctrl + B puis vous pouvez utiliser le bouton Exécuter. 

0
9113303

J'ai le même problème sur Eclipse 3.8.1. Pour moi, cela a fonctionné de définir le type d'artefact sur exécutable:

Faites un clic droit sur le projet -> Construction C/C++ -> Paramètres -> Construire un artefact -> Type d'artefact: Exécutable

Enfin, la reconstruction du projet a généré l’entrée Binaires dans l’explorateur de projets.

0
ggagliano

Selon mon expérience, après avoir construit votre projet (CTRL+B), vous devez créer une configuration d'exécution (ou de débogage) dans le menu déroulant Run ou Debug de la barre d'outils principale. Puis dans la page principale, cliquez sur le bouton 

Search Project...

bouton. 

Cela trouvera tous les fichiers exécutables que vous avez créés et les affichera dans une boîte de dialogue. Vous pouvez choisir le bon puis frapper le Run (ou

0
tinlyx

Vous devez cliquer sur le compilateur MinGW lors de l'exécution du code. Si vous ne le faites pas, le lancement du binaire avec échec non trouvé a échoué.

0
andy

Après avoir tout essayé, ce qui a fonctionné pour moi a été d'octroyer à Eclipse l'autorisation d'exécution:

cd Eclipse-installation-dir 
Sudo chmod +x Eclipse

Utiliser Eclipse Luna sur Ubuntu 12.04 LTS.

0
user3381196