web-dev-qa-db-fra.com

Eclipse CDT utilisant MinGW ne sort pas dans la console

J'ai un ordinateur Windows 7 64 bits et j'essaie d'installer un IDE C++ gratuit. J'ai donc choisi d'installer Eclipse Helios avec CDT.

Pour g ++, make et gdb, j'ai installé msys et mingw conformément à ce tutoriel: http://wiki.wxwidgets.org/HowTo:_Install_MSYS_and_MinGW_for_use_with_Eclipse_CDT

Les versions sont:

  • make: GNU make 3.81
  • g ++: 4.5.0
  • gdb: 7.1

Donc, il devrait être compatible avec mon processeur 64 bits.

Cependant, lorsque j'essaie de lancer un programme très simple avec Eclipse, je ne vois rien sur la console. Le code source est:

#include <iostream>

 using namespace std;

 int main()
 {
    int i;

    cout << "Enter an integer: " << endl;
    cin >> i;
    cout << endl << "i is " << i << endl;

    return 0;
 }

La construction est correcte et lorsque je lance le fichier .exe avec la commande (console Windows), le comportement est celui attendu… ... Mais avec la console Eclipse, je ne vois rien avec run et avec debug, la sortie est simplement: "Entrez un entier: ", alors quand je tape un nombre et appuie sur entrer il ne fait rien.

Est-ce que quelqu'un sait comment résoudre ce problème s'il vous plaît?

Merci,

Guillaume

PS: J'utilise la chaîne d'outils "Linux GCC", avec "MinGW GCC", je n'ai rien du tout dans la console.

37
Guillaume

Ce bogue de la console a été remarqué dans les versions 64 bits d’Eclipse:

http://www.Eclipse.org/forums/index.php?t=msg&th=197552&start=0&S=2a2b64e1f1404705c0214976bd477428

Une solution consiste à installer Eclipse 32 bits.

5
guest

Cela a fonctionné pour moi lors de l'installation d'Eclipse 64 bits sous Windows 7 à l'aide de MinGW:

Faites un clic droit sur votre projet. Sélectionnez "Propriétés".

Sélectionnez la propriété "Paramètres d'exécution/de débogage" à gauche de la nouvelle fenêtre.

Dans la fenêtre de droite, cliquez sur votre exécutable pour le mettre en surbrillance (c.-à-d. Test.exe) et cliquez sur "Modifier".

Dans l'onglet Environnement, cliquez sur "Nouveau"

Prénom: CHEMIN
Valeur: Chemin vers votre répertoire bin MinGW. (Pour moi, c'était: C:\devcore\MinGW\bin

Cliquez sur "OK" sur toutes les fenêtres pour fermer.

Essayez de courir à nouveau, il devrait imprimer la sortie à l'écran.

138
ossys

Vous devez configurer l'éditeur de liens J'utilise MinGW.

Suivez les étapes ci-dessous.

Goto Project > Properties > C/C++ Build > Settings > Tool Settings (Tab) > MinGW C++ Linker (Option) > Add Command (g++ -static-libgcc -static-libstdc++)   (default command is only g++)
8
Dhiral Pandya

la solution de purlogic fonctionne ... Au lieu de la définir pour chaque projet, j'ai découvert qu'elle pouvait être définie globalement:

Dans Fenêtre -> Préférences-> C/C++ -> Construire -> Environnement .__, ajoutez une variable pour votre compilateur. J'ai ajouté par exemple: MINGW, avec la valeur "C:\MinGW\bin"

7
Yifu

J'ai rencontré le même problème, à cause de plusieurs installations de gcc sur un PC. Mais La solution de Greg n'a fonctionné que partiellement pour moi.

Dans mon cas, le vidage n'a pas été fait explicitement dans l'application. Alors que les programmes C++ utilisent souvent std::cout << ... << std::endl où la endl fait un vidage, mon programme utilisait la sortie C réelle, telle que la valeur habituelle printf. La printf pouvait être vue directement au démarrage du programme dans la fenêtre de commande. Cependant, dans la console Eclipse, ils étaient manquants. D'où un 

fflush(stdout);

après la printf fait la chose pour moi. Cela pourrait être un problème dans l'implémentation de la console Eclipse. J'imagine que c'est pourquoi fixer le sentier n'a pas fonctionné pour certaines personnes ici.

Une solution alternative au lieu de définir PATH dans les paramètres "Exécuter" consiste à démarrer l'ensemble Eclipse à l'aide d'un fichier de traitement par lots, qui ressemble essentiellement à ceci:

set PATH=<mymingwlocation>\bin;%PATH%
start <myeclipselocation>\Eclipse.exe

Ensuite, toute configuration d’exécution utiliserait par défaut le bon emplacement MingW. Cela pourrait également résoudre d’autres problèmes pouvant résulter de l’utilisation du mauvais gcc.

2
michael_s

Avez-vous essayé d'exécuter Eclipse.exe avec des privilèges d'administrateur? cela a fonctionné pour moi!

1
Roberto

Ce problème sur le CDT Eclipse Kepler 64/32 bits s’appliquait sur un outil openCV/wxWidgets, Win7, qui utilisait MinGW pour générer.

Si quelqu'un rencontre ce problème alors qu'il a ce problème et travaille avec openCV, vous saurez déjà qu'il existe de nombreuses instructions obsolètes pour la construction/l'installation d'openCV sur Internet. 

Une de celles-ci était d'aller dans Paramètres de construction -> Éditeur de liens -> Divers et à l'intérieur de la zone de saisie de texte Indicateurs de l'éditeur de liens, tapez -Wl,--subsystem,windows -mwindows Cependant, cela empêche cout de sortir sur un terminal en ligne de commande dans Windows.

Faire plus creuser cela semble intentionnel, apparemment, -mwindows implique de diriger STDOUT loin d'une ligne de commande, spécifiquement vers une application de type interface graphique.

En outre, supprimer -mwindows et simplement laisser -Wl,--subsystem,windows permet de rediriger STDOUT de toute façon en dehors de la ligne de commande. 

Maintenant, remarquez que je n'ai encore rien construit en dehors d'un programme hello world impliquant wxWidgets et openCV, je ne suis donc pas sur le point de créer un compte dans une partie d'une interface graphique, je ne sais donc pas si cette fonctionnalité maintenant être cassé ou si il serait imprimer sur l'objet graphique, ainsi que d'un terminal en ligne de commande.

1
JoeManiaci

Ajoutez une variable PATH (PATH = "votre chemin de répertoire MinGW/bin") dans votre projet C++ en utilisant Exécuter -> Exécuter les configurations -> dans l'onglet Environnement.

 enter image description here

0
zaursh

Ou définissez l'option de l'éditeur de liens -static. Fonctionne pour moi au moins.

0
rmk