wake-up-neo.com

Eclipse CDT mit MinGW wird nicht in der Konsole ausgegeben

Ich habe einen Windows 7-64-Bit-PC und versuche, eine kostenlose C++ - IDE zu installieren. Daher habe ich mich für die Installation von Eclipse Helios mit CDT entschieden.

Für g ++, make und gdb habe ich msys und mingw gemäß diesem Tutorial installiert: http://wiki.wxwidgets.org/HowTo:_Install_MSYS_und_MinGW_for_use_with_Eclipse_CDT

Die Versionen sind:

  • make: GNU make 3.81
  • g ++: 4,5,0
  • gdb: 7,1

Es sollte also mit meiner 64-Bit-CPU kompatibel sein.

Wenn ich jedoch versuche, ein sehr einfaches Programm mit Eclipse auszuführen, sehe ich nichts auf der Konsole. Der Quellcode lautet:

#include <iostream>

 using namespace std;

 int main()
 {
    int i;

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

    return 0;
 }

Der Build ist in Ordnung und wenn ich die .exe mit dem Befehl (Windows - Konsole) starte, ist das Verhalten wie erwartet . Aber bei der Eclipse - Konsole sehe ich nichts mit run und mit debug ist die Ausgabe nur: "Geben Sie eine integer: ", wenn ich dann eine Zahl eingebe und die Eingabetaste drücke, tut das nichts.

Weiß jemand, wie man das beheben kann?

Vielen Dank,

Guillaume

PS: Ich benutze die Toolchain "Linux GCC", mit "MinGW GCC" habe ich überhaupt nichts in der Konsole.

37
Guillaume

Dieser Konsolenfehler wurde in 64-Bit-Versionen von Eclipse festgestellt:

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

Eine Problemumgehung besteht darin, den 32-Bit-Eclipse zu installieren

5
guest

Dies funktionierte für mich bei der 64-Bit-Installation von Eclipse unter Windows 7 mit MinGW:

Klicken Sie mit der rechten Maustaste auf Ihr Projekt. Wählen Sie "Eigenschaften".

Wählen Sie links im neuen Fenster die Eigenschaft "Run/Debug Settings" aus.

Klicken Sie im rechten Fenster auf Ihre ausführbare Datei, um sie hervorzuheben (dh - Test.exe), und klicken Sie auf "Bearbeiten".

Klicken Sie auf der Registerkarte Umgebung auf "Neu".

Name: PFAD
Wert: Pfad zu Ihrem MinGW-Bin-Verzeichnis. (Für mich war das: C:\devcore\MinGW\bin

Klicken Sie in allen Fenstern auf "OK", um das Fenster zu schließen.

Versuchen Sie es erneut, es sollte die Ausgabe auf dem Bildschirm erscheinen.

138
ossys

Sie müssen den Linker einrichten Ich verwende MinGW.

Befolgen Sie die folgenden Schritte.

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

die Lösung von purlogic funktioniert. Statt das für jedes Projekt festzulegen, habe ich festgestellt, dass es global eingestellt werden kann:

In Fenster -> Einstellungen -> C/C++ -> Erstellen -> Umgebung Fügen Sie eine Variable für Ihren Compiler hinzu. Ich habe beispielsweise hinzugefügt: MINGW mit dem Wert "C:\MinGW\bin"

7
Yifu

Ich bin auf das gleiche Problem gestoßen, weil mehrere gcc-Installationen auf einem PC installiert waren. Aber Gregs Lösung funktionierte nur teilweise für mich.

In meinem Fall wurde das Flush in der Anwendung nicht explizit durchgeführt. Während C++ - Programme häufig std::cout << ... << std::endl verwenden, bei dem die endl eine Flush-Aktion durchführt, verwendete mein Programm tatsächliche C-Ausgaben wie die übliche printf. Die printf konnte direkt beim Start des Programms im cmd-Fenster gesehen werden. In der Eclipse-Konsole fehlten sie jedoch. Daher a 

fflush(stdout);

nach der printf tat das Ding für mich. Dies könnte ein Problem bei der Implementierung der Eclipse-Konsole sein. Ich denke, deshalb hat das Fixing the Path für einige Leute hier nicht funktioniert.

Eine alternative Lösung, anstatt den PATH in den "Run" -Einstellungen festzulegen, besteht darin, den gesamten Eclipse mit einer Batch-Datei zu starten, die im Wesentlichen wie folgt aussieht:

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

Dann würde jede Laufkonfiguration standardmäßig den korrekten MingW-Speicherort verwenden. Dies kann auch andere Probleme beheben, die durch die Verwendung des falschen gcc entstehen könnten.

2
michael_s

Haben Sie versucht, die Eclipse.exe mit Administratorrechten auszuführen? es hat für mich funktioniert!

1
Roberto

Hatte dieses Problem bei 64-/32-Bit-Eclipse-Kepler-CDT, um an einem openCV/wxWidgets-Tool, Win7, zu arbeiten, das MinGW zum Erstellen verwendet.

Wenn jemand auf dieses Problem stößt und mit openCV zusammenarbeitet, werden Sie bereits wissen, dass es viele veraltete openCV-Installations- und Installationsanweisungen im gesamten Internet gibt. 

Ich musste zu Build Settings -> Linker -> Miscellaneous gehen und innerhalb des Texteingabefelds Linker Flags .__ eingeben. -Wl,--subsystem,windows -mwindows Dies verhindert jedoch die Ausgabe von cout an ein Befehlszeilenterminal in Windows.

Wenn Sie noch ein wenig mehr graben, sieht das absichtlich aus. Offensichtlich besteht bei den -mwindows das Ablenken von STDOUT von einer Befehlszeile speziell zu einer GUI-ähnlichen Anwendung.

Wenn Sie -mwindows entfernen und nur -Wl,--subsystem,windows lassen, müssen Sie STDOUT trotzdem von der Befehlszeile ableiten. 

Nun, Sie wissen, ich habe noch nichts außerhalb eines Hallo-Welt-Programms mit wxWidgets und openCV aufgebaut. Ich bin also nicht gerade dabei, einen Teil einer grafischen Benutzeroberfläche aufzurufen, also weiß ich nicht, ob diese Funktionalität dies tun würde jetzt defekt sein oder ob es an das GUI-Objekt ausgedruckt werden würde, sowie ein Kommandozeilen-Terminal.

1
JoeManiaci

Fügen Sie die PATH-Variable (PATH = "MinGW/bin-Verzeichnispfad") in Ihr C++ - Projekt ein, indem Sie auf Ausführen -> Konfigurationen ausführen -> in der Registerkarte Umgebung klicken

 enter image description here

0
zaursh

Oder setzen Sie die Linker-Option -static. Funktioniert mindestens für mich.

0
rmk